Skip to content

Commit bde4f4b

Browse files
author
avandras
committed
Add even furthererer tests
1 parent b9d3c48 commit bde4f4b

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

tests/test_multisite.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
from tests.test_ha import Config
2222
from .test_etcd import etcd_read, etcd_write, socket_getaddrinfo
23-
from .test_ha import get_cluster_initialized_with_leader
23+
from .test_ha import DCSError, get_cluster_initialized_with_leader
2424

2525
SYSID = '12345678901'
2626

@@ -299,6 +299,30 @@ def test_resolve_multisite_leader(self, check_transition, disconnected_operation
299299
check_transition.assert_called_with(leader=False, note="Failed to update multisite leader status")
300300

301301
# the leader is someone else
302+
self.multisite._release = True
303+
self.multisite._failover_target = 'foo'
304+
self.multisite._failover_timeout = 9999999999
305+
self.multisite._set_standby_config = Mock(return_value=True)
306+
self.multisite.name = 'foo'
307+
self.multisite._has_leader = True
308+
self.multisite._resolve_multisite_leader()
309+
check_transition.assert_called_with(leader=False, note="Lost leader lock to leader")
310+
self.assertIsNone(self.multisite._failover_target)
311+
self.assertIsNone(self.multisite._failover_timeout)
312+
313+
# DCS errors
314+
self.multisite.dcs.get_cluster = Mock(side_effect=DCSError('foo'), return_value=c)
315+
disconnected_operation.reset_mock()
316+
self.multisite._has_leader = True
317+
self.multisite.name = 'blah'
318+
self.multisite._resolve_multisite_leader()
319+
320+
self.assertEqual(self.multisite._dcs_error, 'Multi site DCS cannot be reached')
321+
disconnected_operation.assert_called_once()
322+
self.assertFalse(self.multisite._has_leader)
323+
self.multisite.on_change.assert_called_once()
324+
325+
302326

303327

304328

0 commit comments

Comments
 (0)