File tree Expand file tree Collapse file tree 1 file changed +17
-11
lines changed Expand file tree Collapse file tree 1 file changed +17
-11
lines changed Original file line number Diff line number Diff line change @@ -360,18 +360,24 @@ def test_primary_stepdown(self):
360360 self .seed , replicaSet = self .name , use_greenlets = use_greenlets )
361361 self .assertTrue (bool (len (c .secondaries )))
362362 primary = c .primary
363- secondaries = c .secondaries .copy ()
364-
365- def primary_changed ():
366- for _ in xrange (30 ):
367- if c .primary != primary :
368- return True
369- sleep (1 )
370- return False
371-
372363 ha_tools .stepdown_primary ()
373- self .assertTrue (primary_changed ())
374- self .assertNotEqual (secondaries , c .secondaries )
364+
365+ # Wait for new primary
366+ patience_seconds = 30
367+ for _ in xrange (patience_seconds ):
368+ sleep (1 )
369+ rs_state = c ._MongoReplicaSetClient__rs_state
370+ if rs_state .writer and rs_state .writer != primary :
371+ # New primary stepped up
372+ new_primary = _partition_node (ha_tools .get_primary ())
373+ self .assertEqual (new_primary , rs_state .writer )
374+ new_secondaries = partition_nodes (ha_tools .get_secondaries ())
375+ self .assertEqual (set (new_secondaries ), rs_state .secondaries )
376+ break
377+ else :
378+ self .fail (
379+ "No new primary after %s seconds. Old primary was %s, current"
380+ " is %s" % (patience_seconds , primary , ha_tools .get_primary ()))
375381
376382
377383class TestWritesWithFailover (HATestCase ):
You can’t perform that action at this time.
0 commit comments