Skip to content

Commit b9d3c48

Browse files
author
avandras
committed
Add even furtherer tests
1 parent 428611b commit b9d3c48

File tree

1 file changed

+33
-6
lines changed

1 file changed

+33
-6
lines changed

tests/test_multisite.py

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -226,10 +226,7 @@ def test_check_transition(self):
226226
@patch.object(MultisiteController, 'touch_member')
227227
@patch.object(MultisiteController, '_disconnected_operation')
228228
@patch.object(MultisiteController, '_check_transition')
229-
# @patch.object(MultisiteController, '_update_history')
230229
def test_resolve_multisite_leader(self, check_transition, disconnected_operation, touch_member):
231-
# c = get_cluster_initialized_with_leader()
232-
# self.multisite.dcs.get_cluster = Mock(return_value=c)
233230
self.multisite.on_change = Mock()
234231

235232
# update_history.assert_called_once()
@@ -241,7 +238,7 @@ def test_resolve_multisite_leader(self, check_transition, disconnected_operation
241238
# we are a member of the cluster
242239
# touch_member.reset_mock()
243240

244-
# unlocked cluster
241+
# Unlocked cluster
245242
c = get_cluster_initialized_without_leader(failover=Failover(0, '', 'foo', None, 'mstest'))
246243
self.multisite.dcs.get_cluster = Mock(return_value=c)
247244

@@ -274,8 +271,38 @@ def test_resolve_multisite_leader(self, check_transition, disconnected_operation
274271
self.multisite._resolve_multisite_leader()
275272
self.multisite.dcs.manual_failover.assert_not_called()
276273

277-
# self.multisite.name = 'leader'
278-
# self.multisite._resolve_multisite_leader()
274+
# There is a leader, and it's us
275+
disconnected_operation.reset_mock()
276+
c = get_cluster_initialized_with_leader()
277+
self.multisite.dcs.get_cluster = Mock(return_value=c)
278+
# lock is being released
279+
self.multisite.dcs.delete_leader = Mock()
280+
self.multisite.name = 'leader'
281+
self.multisite._release = True
282+
self.multisite._resolve_multisite_leader()
283+
self.multisite.dcs.delete_leader.assert_called_once_with(c.leader)
284+
check_transition.assert_called_with(leader=False, note="Released multisite leader status on request")
285+
disconnected_operation.assert_called_once()
286+
self.assertFalse(self.multisite._release)
287+
288+
self.multisite.dcs.update_leader = Mock(return_value = True)
289+
self.multisite._check_for_failover = Mock()
290+
self.multisite._resolve_multisite_leader()
291+
self.assertIsNone(self.multisite._standby_config)
292+
check_transition.assert_called_with(leader=True, note="Already have multisite leader status")
293+
self.multisite._check_for_failover.assert_called_once_with(c)
294+
295+
disconnected_operation.reset_mock()
296+
self.multisite.dcs.update_leader = Mock(return_value = False)
297+
self.multisite._resolve_multisite_leader()
298+
disconnected_operation.assert_called_once()
299+
check_transition.assert_called_with(leader=False, note="Failed to update multisite leader status")
300+
301+
# the leader is someone else
302+
303+
304+
305+
279306
# touch_member.assert_called_once()
280307

281308
def test_observe_leader(self):

0 commit comments

Comments
 (0)