def test_passive_and_hidden(self): self.c = ReplicaSetConnection( self.seed, replicaSet=self.name, use_greenlets=use_greenlets) db = self.c.pymongo_test w = len(self.c.secondaries) + 1 db.test.remove({}, safe=True, w=w) db.test.insert({'foo': 'bar'}, safe=True, w=w) passives = replset_tools.get_passives() passives = [_partition_node(member) for member in passives] hidden = replset_tools.get_hidden_members() hidden = [_partition_node(member) for member in hidden] self.assertEqual(self.c.secondaries, set(passives)) for mode in ( ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED ): db.read_preference = mode for _ in xrange(10): cursor = db.test.find() cursor.next() self.assertTrue(cursor._Cursor__connection_id in passives) self.assertTrue(cursor._Cursor__connection_id not in hidden) replset_tools.kill_members(replset_tools.get_passives(), 2) sleep(2 * MONITOR_INTERVAL) db.read_preference = ReadPreference.SECONDARY_PREFERRED for _ in xrange(10): cursor = db.test.find() cursor.next() self.assertEqual(cursor._Cursor__connection_id, self.c.primary)
def test_passive_and_hidden(self): c = ReplicaSetConnection(self.seed, replicaSet=self.name) db = c.pymongo_test db.test.remove({}, safe=True, w=len(c.secondaries)) w = len(c.secondaries) + 1 db.test.insert({'foo': 'bar'}, safe=True, w=w) db.read_preference = ReadPreference.SECONDARY passives = replset_tools.get_passives() passives = [_partition_node(member) for member in passives] hidden = replset_tools.get_hidden_members() hidden = [_partition_node(member) for member in hidden] self.assertEqual(c.secondaries, set(passives)) for _ in xrange(10): cursor = db.test.find() cursor.next() self.assertTrue(cursor._Cursor__connection_id not in hidden) replset_tools.kill_members(replset_tools.get_passives(), 2) for _ in xrange(10): cursor = db.test.find() cursor.next() self.assertEqual(cursor._Cursor__connection_id, c.primary)