@@ -854,14 +854,16 @@ def test_on_set_password(harness):
854
854
patch ("charm.PostgresqlOperatorCharm.postgresql" ) as _postgresql ,
855
855
patch ("charm.Patroni.are_all_members_ready" ) as _are_all_members_ready ,
856
856
patch ("charm.PostgresqlOperatorCharm._on_leader_elected" ),
857
+ patch ("charm.new_password" , return_value = "newpass" ),
857
858
):
858
859
# Create a mock event.
859
860
mock_event = MagicMock (params = {})
860
861
861
862
# Set some values for the other mocks.
862
- _are_all_members_ready .side_effect = [False , True , True , True , True ]
863
- _postgresql .update_user_password = PropertyMock (
864
- side_effect = [PostgreSQLUpdateUserPasswordError , None , None , None ]
863
+ _are_all_members_ready .return_value = False
864
+ _postgresql .update_user_password = PropertyMock ()
865
+ _postgresql .update_user_password .return_value .side_effect = (
866
+ PostgreSQLUpdateUserPasswordError
865
867
)
866
868
867
869
# Test trying to set a password through a non leader unit.
@@ -878,6 +880,7 @@ def test_on_set_password(harness):
878
880
_set_secret .assert_not_called ()
879
881
880
882
# Test without providing the username option but without all cluster members ready.
883
+ _are_all_members_ready .return_value = True
881
884
mock_event .reset_mock ()
882
885
del mock_event .params ["username" ]
883
886
harness .charm ._on_set_password (mock_event )
@@ -891,14 +894,17 @@ def test_on_set_password(harness):
891
894
_set_secret .assert_not_called ()
892
895
893
896
# Test without providing the username option.
897
+ mock_event .reset_mock ()
898
+ _postgresql .update_user_password .return_value .side_effect = None
894
899
harness .charm ._on_set_password (mock_event )
895
- assert _set_secret .call_args_list [0 ][0 ][1 ] == "operator-password"
900
+ mock_event .fail .assert_called_once ()
901
+ _set_secret .assert_not_called ()
896
902
897
903
# Also test providing the username option.
898
904
_set_secret .reset_mock ()
899
905
mock_event .params ["username" ] = "replication"
900
906
harness .charm ._on_set_password (mock_event )
901
- assert _set_secret .call_args_list [ 0 ][ 0 ][ 1 ] == "replication-password"
907
+ _set_secret .assert_called_once_with ( "app" , "replication-password" , "newpass" )
902
908
903
909
# And test providing both the username and password options.
904
910
_set_secret .reset_mock ()
0 commit comments