From 090a39be109c0a4edcb24935ec3d4b0a21f47a04 Mon Sep 17 00:00:00 2001 From: Bernie Hackett Date: Mon, 6 Feb 2017 13:32:36 -0800 Subject: [PATCH] Improve master slave test setup --- test/test_master_slave_connection.py | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/test/test_master_slave_connection.py b/test/test_master_slave_connection.py index d45c322dd..f269b5052 100644 --- a/test/test_master_slave_connection.py +++ b/test/test_master_slave_connection.py @@ -51,20 +51,22 @@ class TestMasterSlaveConnection(unittest.TestCase, TestRequestMixin): self.master = MongoClient(host, port) self.slaves = [] - try: - self.slaves.append(MongoClient( - host2, port2, read_preference=ReadPreference.SECONDARY)) - except ConnectionFailure: - pass - try: - self.slaves.append(MongoClient( - host3, port3, read_preference=ReadPreference.SECONDARY)) - except ConnectionFailure: - pass + for hst, prt in ((host2, port2), (host3, port3)): + try: + slave = MongoClient( + hst, prt, read_preference=ReadPreference.SECONDARY) + except ConnectionFailure: + continue + + ismaster = slave.admin.command('ismaster') + if 'arbiterOnly' not in ismaster and ismaster.get('msg') != 'isdbgrid': + self.slaves.append(slave) if not self.slaves: - raise SkipTest("Not connected to master-slave set") + raise SkipTest( + "Not connected to master-slave or replica " + "set or no slaves or secondaries available.") self.ctx = catch_warnings() warnings.simplefilter("ignore", DeprecationWarning)