4
4
import logging
5
5
import unittest
6
6
from unittest import mock
7
- from unittest .mock import MagicMock , patch
7
+ from unittest .mock import MagicMock , PropertyMock , patch
8
8
9
9
import pytest
10
10
from charms .mongodb .v1 .helpers import CONF_DIR , DATA_DIR , KEY_FILE
@@ -133,8 +133,12 @@ def test_mongod_pebble_ready(self, connect_exporter, fix_data_dir, defer, pull_l
133
133
# Ensure that _connect_mongodb_exporter was called
134
134
connect_exporter .assert_called_once ()
135
135
136
+ @patch (
137
+ "charm.MongoDBCharm.needs_new_termination_period" ,
138
+ new_callable = PropertyMock (return_value = False ),
139
+ )
136
140
@patch ("charm.gen_certificate" , return_value = (b"" , b"" ))
137
- @patch ("charm.MongoDBCharm.get_current_termination_period " )
141
+ @patch ("charm.MongoDBCharm.get_termination_period_for_statefulset " )
138
142
@patch ("charm.MongoDBCharm.update_termination_grace_period_to_one_year" )
139
143
@patch ("ops.framework.EventBase.defer" )
140
144
@patch ("charm.MongoDBCharm._push_keyfile_to_workload" )
@@ -162,7 +166,7 @@ def test_pebble_ready_cannot_retrieve_container(
162
166
163
167
@patch ("charm.gen_certificate" , return_value = (b"" , b"" ))
164
168
@patch ("charm.gen_certificate" , return_value = (b"" , b"" ))
165
- @patch ("charm.MongoDBCharm.get_current_termination_period " )
169
+ @patch ("charm.MongoDBCharm.get_termination_period_for_statefulset " )
166
170
@patch ("charm.MongoDBCharm.update_termination_grace_period_to_one_year" )
167
171
@patch ("ops.framework.EventBase.defer" )
168
172
@patch ("charm.MongoDBCharm._push_keyfile_to_workload" )
@@ -228,8 +232,12 @@ def test_pebble_ready_no_storage_yet(self, defer):
228
232
mock_container .replan .assert_not_called ()
229
233
defer .assert_called ()
230
234
235
+ @patch (
236
+ "charm.MongoDBCharm.needs_new_termination_period" ,
237
+ new_callable = PropertyMock (return_value = False ),
238
+ )
231
239
@patch ("charm.gen_certificate" , return_value = (b"" , b"" ))
232
- @patch ("charm.MongoDBCharm.get_current_termination_period " )
240
+ @patch ("charm.MongoDBCharm.get_termination_period_for_statefulset " )
233
241
@patch ("charm.MongoDBCharm.update_termination_grace_period_to_one_year" )
234
242
@patch ("ops.framework.EventBase.defer" )
235
243
@patch ("charm.MongoDBProvider" )
@@ -261,7 +269,7 @@ def test_start_cannot_retrieve_container(
261
269
defer .assert_not_called ()
262
270
263
271
@patch ("charm.gen_certificate" , return_value = (b"" , b"" ))
264
- @patch ("charm.MongoDBCharm.get_current_termination_period " )
272
+ @patch ("charm.MongoDBCharm.get_termination_period_for_statefulset " )
265
273
@patch ("charm.MongoDBCharm.update_termination_grace_period_to_one_year" )
266
274
@patch ("ops.framework.EventBase.defer" )
267
275
@patch ("charm.MongoDBProvider" )
@@ -291,7 +299,7 @@ def test_start_container_cannot_connect(self, connection, init_user, provider, d
291
299
defer .assert_called ()
292
300
293
301
@patch ("charm.gen_certificate" , return_value = (b"" , b"" ))
294
- @patch ("charm.MongoDBCharm.get_current_termination_period " )
302
+ @patch ("charm.MongoDBCharm.get_termination_period_for_statefulset " )
295
303
@patch ("charm.MongoDBCharm.update_termination_grace_period_to_one_year" )
296
304
@patch ("ops.framework.EventBase.defer" )
297
305
@patch ("charm.MongoDBProvider" )
@@ -321,8 +329,12 @@ def test_start_container_does_not_exist(self, connection, init_user, provider, d
321
329
self .assertEqual ("db_initialised" in self .harness .charm .app_peer_data , False )
322
330
defer .assert_called ()
323
331
332
+ @patch (
333
+ "charm.MongoDBCharm.needs_new_termination_period" ,
334
+ new_callable = PropertyMock (return_value = False ),
335
+ )
324
336
@patch ("charm.gen_certificate" , return_value = (b"" , b"" ))
325
- @patch ("charm.MongoDBCharm.get_current_termination_period " )
337
+ @patch ("charm.MongoDBCharm.get_termination_period_for_statefulset " )
326
338
@patch ("charm.MongoDBCharm.update_termination_grace_period_to_one_year" )
327
339
@patch ("charm.MongoDBCharm._configure_container" , return_value = None )
328
340
@patch ("ops.framework.EventBase.defer" )
@@ -354,7 +366,11 @@ def test_start_container_exists_fails(self, connection, init_user, provider, def
354
366
self .assertEqual ("db_initialised" in self .harness .charm .app_peer_data , False )
355
367
defer .assert_not_called ()
356
368
357
- @patch ("charm.MongoDBCharm.get_current_termination_period" )
369
+ @patch (
370
+ "charm.MongoDBCharm.needs_new_termination_period" ,
371
+ new_callable = PropertyMock (return_value = False ),
372
+ )
373
+ @patch ("charm.MongoDBCharm.get_termination_period_for_statefulset" )
358
374
@patch ("charm.MongoDBCharm.update_termination_grace_period_to_one_year" )
359
375
@patch ("charm.MongoDBCharm._configure_container" , return_value = None )
360
376
@patch ("charm.gen_certificate" , return_value = (b"" , b"" ))
@@ -388,7 +404,7 @@ def test_start_already_initialised(self, connection, init_user, provider, defer,
388
404
defer .assert_not_called ()
389
405
390
406
@patch ("charm.gen_certificate" , return_value = (b"" , b"" ))
391
- @patch ("charm.MongoDBCharm.get_current_termination_period " )
407
+ @patch ("charm.MongoDBCharm.get_termination_period_for_statefulset " )
392
408
@patch ("charm.MongoDBCharm.update_termination_grace_period_to_one_year" )
393
409
@patch ("ops.framework.EventBase.defer" )
394
410
@patch ("charm.MongoDBProvider" )
@@ -421,7 +437,7 @@ def test_start_mongod_not_ready(self, connection, init_user, provider, defer, *u
421
437
self .assertEqual ("db_initialised" in self .harness .charm .app_peer_data , False )
422
438
defer .assert_called ()
423
439
424
- @patch ("charm.MongoDBCharm.get_current_termination_period " )
440
+ @patch ("charm.MongoDBCharm.get_termination_period_for_statefulset " )
425
441
@patch ("charm.MongoDBCharm.update_termination_grace_period_to_one_year" )
426
442
@patch ("charm.gen_certificate" , return_value = (b"" , b"" ))
427
443
@patch ("ops.framework.EventBase.defer" )
@@ -454,7 +470,7 @@ def test_start_mongod_error_initalising_replica_set(
454
470
defer .assert_called ()
455
471
456
472
@patch ("charm.gen_certificate" , return_value = (b"" , b"" ))
457
- @patch ("charm.MongoDBCharm.get_current_termination_period " )
473
+ @patch ("charm.MongoDBCharm.get_termination_period_for_statefulset " )
458
474
@patch ("charm.MongoDBCharm.update_termination_grace_period_to_one_year" )
459
475
@patch ("ops.framework.EventBase.defer" )
460
476
@patch ("charm.MongoDBProvider" )
@@ -486,7 +502,7 @@ def test_error_initialising_users(self, connection, init_user, provider, defer,
486
502
# verify app data
487
503
self .assertEqual ("db_initialised" in self .harness .charm .app_peer_data , False )
488
504
489
- @patch ("charm.MongoDBCharm.get_current_termination_period " )
505
+ @patch ("charm.MongoDBCharm.get_termination_period_for_statefulset " )
490
506
@patch ("charm.MongoDBCharm.update_termination_grace_period_to_one_year" )
491
507
@patch ("charm.MongoDBCharm._init_operator_user" )
492
508
@patch ("charm.gen_certificate" , return_value = (b"" , b"" ))
@@ -701,7 +717,11 @@ def test_reconfigure_add_member_failure(self, connection, defer, *unused):
701
717
connection .return_value .__enter__ .return_value .add_replset_member .assert_called ()
702
718
defer .assert_called ()
703
719
704
- @patch ("charm.MongoDBCharm.get_current_termination_period" )
720
+ @patch (
721
+ "charm.MongoDBCharm.needs_new_termination_period" ,
722
+ new_callable = PropertyMock (return_value = False ),
723
+ )
724
+ @patch ("charm.MongoDBCharm.get_termination_period_for_statefulset" )
705
725
@patch ("charm.MongoDBCharm.update_termination_grace_period_to_one_year" )
706
726
@patch ("charm.MongoDBCharm._configure_container" , return_value = None )
707
727
@patch ("charm.gen_certificate" , return_value = (b"" , b"" ))
@@ -1076,8 +1096,13 @@ def test__connect_mongodb_exporter_success(
1076
1096
expected_uri = uri_template .format (password = "mongo123" )
1077
1097
self .assertEqual (expected_uri , new_uri )
1078
1098
1079
- @patch ("charm.MongoDBCharm.get_current_termination_period " )
1099
+ @patch ("charm.MongoDBCharm.get_termination_period_for_statefulset " )
1080
1100
@patch ("charm.MongoDBCharm.update_termination_grace_period_to_one_year" )
1101
+ @patch (
1102
+ "charm.MongoDBCharm.needs_new_termination_period" ,
1103
+ new_callable = PropertyMock (return_value = False ),
1104
+ )
1105
+ @patch ("charm.MongoDBCharm.needs_new_termination_period" , return_value = False )
1081
1106
@patch ("tenacity.nap.time.sleep" , MagicMock ())
1082
1107
@patch ("charm.USER_CREATING_MAX_ATTEMPTS" , 1 )
1083
1108
@patch ("charm.USER_CREATION_COOLDOWN" , 1 )
@@ -1104,7 +1129,7 @@ def test_backup_user_created(self, *unused):
1104
1129
self .assertIsNotNone (password ) # verify the password is set
1105
1130
1106
1131
@patch ("charm.gen_certificate" , return_value = (b"" , b"" ))
1107
- @patch ("charm.MongoDBCharm.get_current_termination_period " )
1132
+ @patch ("charm.MongoDBCharm.get_termination_period_for_statefulset " )
1108
1133
@patch ("charm.MongoDBCharm.update_termination_grace_period_to_one_year" )
1109
1134
@patch ("charm.MongoDBConnection" )
1110
1135
def test_set_password_provided (self , * unused ):
0 commit comments