Skip to content

Commit be5b4ae

Browse files
committed
PYTHON-724 Remove greenlet- and gevent-specific client tests.
1 parent 4ab4a97 commit be5b4ae

File tree

5 files changed

+51
-115
lines changed

5 files changed

+51
-115
lines changed

test/high_availability/test_ha.py

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,9 @@
1818
# each method requires running setUp, which takes about 30 seconds to bring up
1919
# a replica set. Thus each method asserts everything we want to assert for a
2020
# given replica-set configuration.
21-
import os
2221

22+
import os
2323
import time
24-
from time import sleep
2524

2625
import ha_tools
2726

@@ -91,7 +90,7 @@ def tearDown(self):
9190
ha_tools.kill_all_members()
9291
ha_tools.nodes.clear()
9392
ha_tools.routers.clear()
94-
sleep(1) # Let members really die.
93+
time.sleep(1) # Let members really die.
9594

9695

9796
class TestDirectConnection(HATestCase):
@@ -205,7 +204,7 @@ def test_passive_and_hidden(self):
205204
utils.assertReadFromAll(self, self.c, passives, mode)
206205

207206
ha_tools.kill_members(ha_tools.get_passives(), 2)
208-
sleep(2 * MONITOR_INTERVAL)
207+
time.sleep(2 * MONITOR_INTERVAL)
209208
utils.assertReadFrom(self, self.c, self.c.primary, SECONDARY_PREFERRED)
210209

211210
def tearDown(self):
@@ -235,7 +234,7 @@ def test_monitor_removes_recovering_member(self):
235234

236235
secondary, recovering_secondary = secondaries
237236
ha_tools.set_maintenance(recovering_secondary, True)
238-
sleep(2 * MONITOR_INTERVAL)
237+
time.sleep(2 * MONITOR_INTERVAL)
239238

240239
for mode in SECONDARY, SECONDARY_PREFERRED:
241240
# Don't read from recovering member
@@ -282,7 +281,7 @@ def test_recovering_member_triggers_refresh(self):
282281

283282
# Wait for the immediate refresh to complete - we're not waiting for
284283
# the periodic refresh, which has been disabled
285-
sleep(1)
284+
time.sleep(1)
286285

287286
for c in self.c_find_one, self.c_count:
288287
self.assertFalse(c.secondaries)
@@ -300,14 +299,14 @@ def test_stepdown_triggers_refresh(self):
300299
ha_tools.stepdown_primary()
301300

302301
# Make sure the stepdown completes
303-
sleep(1)
302+
time.sleep(1)
304303

305304
# Trigger a refresh
306305
self.assertRaises(AutoReconnect, c_find_one.test.test.find_one)
307306

308307
# Wait for the immediate refresh to complete - we're not waiting for
309308
# the periodic refresh, which has been disabled
310-
sleep(1)
309+
time.sleep(1)
311310

312311
# We've detected the stepdown
313312
self.assertTrue(
@@ -336,7 +335,7 @@ def primary_changed():
336335
for _ in xrange(30):
337336
if c.primary and c.primary != primary:
338337
return True
339-
sleep(1)
338+
time.sleep(1)
340339
return False
341340

342341
killed = ha_tools.kill_primary()
@@ -355,11 +354,11 @@ def readers_changed():
355354
if c.secondaries != secondaries:
356355
return True
357356

358-
sleep(1)
357+
time.sleep(1)
359358
return False
360359

361360
killed = ha_tools.kill_secondary()
362-
sleep(2 * MONITOR_INTERVAL)
361+
time.sleep(2 * MONITOR_INTERVAL)
363362
self.assertTrue(bool(len(killed)))
364363
self.assertEqual(primary, c.primary)
365364
self.assertTrue(readers_changed())
@@ -378,7 +377,7 @@ def test_primary_stepdown(self):
378377
# Wait for new primary
379378
patience_seconds = 30
380379
for _ in xrange(patience_seconds):
381-
sleep(1)
380+
time.sleep(1)
382381
rs_state = c._MongoReplicaSetClient__rs_state
383382
if rs_state.writer and rs_state.writer != primary:
384383
if ha_tools.get_primary():
@@ -417,7 +416,7 @@ def test_writes_with_failover(self):
417416

418417
# Wait past pool's check interval, so it throws an error from
419418
# get_socket().
420-
sleep(1)
419+
time.sleep(1)
421420

422421
# Verify that we only raise AutoReconnect, not some other error,
423422
# while we wait for new primary.
@@ -428,7 +427,7 @@ def test_writes_with_failover(self):
428427
# No error, found primary.
429428
break
430429
except AutoReconnect:
431-
sleep(.01)
430+
time.sleep(.01)
432431
else:
433432
self.fail("Couldn't connect to new primary")
434433

@@ -645,7 +644,7 @@ def unpartition_node(node):
645644
killed = ha_tools.kill_primary()
646645

647646
# Let monitor notice primary's gone
648-
sleep(2 * MONITOR_INTERVAL)
647+
time.sleep(2 * MONITOR_INTERVAL)
649648

650649
# PRIMARY
651650
assertReadFrom(None, PRIMARY)
@@ -683,13 +682,13 @@ def unpartition_node(node):
683682
ha_tools.wait_for_primary()
684683

685684
ha_tools.kill_members([unpartition_node(secondary)], 2)
686-
sleep(5)
685+
time.sleep(5)
687686
ha_tools.wait_for_primary()
688687
self.assertTrue(MongoClient(
689688
unpartition_node(primary), read_preference=PRIMARY_PREFERRED
690689
).admin.command('ismaster')['ismaster'])
691690

692-
sleep(2 * MONITOR_INTERVAL)
691+
time.sleep(2 * MONITOR_INTERVAL)
693692

694693
# PRIMARY
695694
assertReadFrom(primary, PRIMARY)
@@ -844,7 +843,7 @@ def test_auth_during_failover(self):
844843
ha_tools.kill_members(['%s:%d' % primary], 2)
845844

846845
# Let monitor notice primary's gone
847-
sleep(2 * MONITOR_INTERVAL)
846+
time.sleep(2 * MONITOR_INTERVAL)
848847
self.assertFalse(primary == self.c.primary)
849848

850849
# Make sure we can still authenticate
@@ -959,7 +958,7 @@ def test_request_during_failover(self):
959958

960959
# Fail over
961960
ha_tools.kill_primary()
962-
sleep(5)
961+
time.sleep(5)
963962

964963
patience_seconds = 60
965964
for _ in range(patience_seconds):
@@ -972,7 +971,7 @@ def test_request_during_failover(self):
972971
except ConnectionFailure:
973972
pass
974973

975-
sleep(1)
974+
time.sleep(1)
976975
else:
977976
self.fail("Problem with test: No new primary after %s seconds"
978977
% patience_seconds)
@@ -1062,7 +1061,7 @@ def test_ship_of_theseus(self):
10621061
except (ConnectionFailure, OperationFailure):
10631062
pass
10641063

1065-
sleep(1)
1064+
time.sleep(1)
10661065
else:
10671066
self.fail("Couldn't recover from reconfig")
10681067

@@ -1071,23 +1070,23 @@ def test_ship_of_theseus(self):
10711070
if ha_tools.get_primary() and len(ha_tools.get_secondaries()) == 4:
10721071
break
10731072

1074-
sleep(1)
1073+
time.sleep(1)
10751074
else:
10761075
self.fail("New secondaries didn't join")
10771076

10781077
ha_tools.kill_members([primary, secondary1], 9)
1079-
sleep(5)
1078+
time.sleep(5)
10801079

10811080
# Wait for primary.
10821081
for _ in xrange(30):
10831082
if ha_tools.get_primary() and len(ha_tools.get_secondaries()) == 2:
10841083
break
10851084

1086-
sleep(1)
1085+
time.sleep(1)
10871086
else:
10881087
self.fail("No failover")
10891088

1090-
sleep(2 * MONITOR_INTERVAL)
1089+
time.sleep(2 * MONITOR_INTERVAL)
10911090

10921091
# No error.
10931092
find_one()
@@ -1104,7 +1103,7 @@ def test_ship_of_theseus(self):
11041103
# Should be able to reconnect to set even though original seed
11051104
# list is useless. Use SECONDARY so we don't have to wait for
11061105
# the election, merely for the client to detect members are up.
1107-
sleep(2 * MONITOR_INTERVAL)
1106+
time.sleep(2 * MONITOR_INTERVAL)
11081107
find_one(read_preference=SECONDARY)
11091108

11101109
# Kill new members and switch back to original two members.
@@ -1123,12 +1122,12 @@ def test_ship_of_theseus(self):
11231122
except ConnectionFailure:
11241123
pass
11251124

1126-
sleep(1)
1125+
time.sleep(1)
11271126
else:
11281127
self.fail("Original members didn't become secondaries")
11291128

11301129
# Should be able to reconnect to set again.
1131-
sleep(2 * MONITOR_INTERVAL)
1130+
time.sleep(2 * MONITOR_INTERVAL)
11321131
find_one(read_preference=SECONDARY)
11331132

11341133

test/test_client.py

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,14 @@
2929
from pymongo.mongo_client import MongoClient
3030
from pymongo.database import Database
3131
from pymongo.pool import SocketInfo
32-
from pymongo import auth, thread_util
32+
from pymongo import auth
3333
from pymongo.errors import (AutoReconnect,
3434
ConfigurationError,
3535
ConnectionFailure,
3636
InvalidName,
3737
OperationFailure,
3838
PyMongoError)
39-
from test import (db_user,
40-
db_pwd,
41-
client_context,
39+
from test import (client_context,
4240
connection_string,
4341
host,
4442
pair,
@@ -148,7 +146,6 @@ def test_init_disconnected(self):
148146
self.assertIsInstance(c.is_primary, bool)
149147
self.assertIsInstance(c.is_mongos, bool)
150148
self.assertIsInstance(c.max_pool_size, int)
151-
self.assertIsInstance(c.use_greenlets, bool)
152149
self.assertIsInstance(c.nodes, frozenset)
153150
self.assertIsInstance(c.auto_start_request, bool)
154151
self.assertEqual(dict, c.get_document_class())
@@ -213,13 +210,6 @@ def test_getters(self):
213210
self.assertEqual(self.client.port, port)
214211
self.assertEqual(set([(host, port)]), self.client.nodes)
215212

216-
def test_use_greenlets(self):
217-
self.assertFalse(MongoClient(host, port).use_greenlets)
218-
if thread_util.have_gevent:
219-
self.assertTrue(
220-
MongoClient(
221-
host, port, use_greenlets=True).use_greenlets)
222-
223213
def test_database_names(self):
224214
self.client.pymongo_test.test.save({"dummy": u("object")})
225215
self.client.pymongo_test_mike.test.save({"dummy": u("object")})
@@ -1028,9 +1018,7 @@ def test(collection):
10281018
client = collection.database.connection
10291019
self.assertEqual(0, len(client.nodes))
10301020

1031-
lazy_client_trial(
1032-
reset, connect, test,
1033-
self._get_client, use_greenlets=False)
1021+
lazy_client_trial(reset, connect, test, self._get_client)
10341022

10351023

10361024
class TestClientLazyConnectOneGoodSeed(
@@ -1058,9 +1046,7 @@ def insert(collection, dummy):
10581046
def test(collection):
10591047
self.assertEqual(NTHREADS, collection.count())
10601048

1061-
lazy_client_trial(
1062-
reset, insert, test,
1063-
self._get_client, use_greenlets=False)
1049+
lazy_client_trial(reset, insert, test, self._get_client)
10641050

10651051

10661052
class TestMongoClientFailover(IntegrationTest):

test/test_pooling.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@
1414

1515
"""Test built in connection-pooling with threads."""
1616

17+
import gc
1718
import random
1819
import socket
1920
import sys
2021
import threading
2122
import time
22-
from multiprocessing import Process, Pipe
23-
import gc
23+
2424
from pymongo import MongoClient
2525
from pymongo.errors import ConfigurationError, ConnectionFailure, \
2626
ExceededMaxWaiters
@@ -557,6 +557,11 @@ def test_request_with_fork(self):
557557
if sys.platform == "win32":
558558
raise SkipTest("Can't test forking on Windows")
559559

560+
try:
561+
from multiprocessing import Process, Pipe
562+
except ImportError:
563+
raise SkipTest("No multiprocessing module")
564+
560565
coll = self.c.pymongo_test.test
561566
coll.remove()
562567
coll.insert({'_id': 1})

test/test_replica_set_client.py

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
from bson.tz_util import utc
3232
from pymongo.read_preferences import ReadPreference, Secondary, Nearest
3333
from pymongo.mongo_replica_set_client import MongoReplicaSetClient
34-
from pymongo.mongo_replica_set_client import _partition_node, have_gevent
34+
from pymongo.mongo_replica_set_client import _partition_node
3535
from pymongo.database import Database
3636
from pymongo.pool import SocketInfo
3737
from pymongo.errors import (AutoReconnect,
@@ -124,7 +124,6 @@ def test_init_disconnected(self):
124124

125125
self.assertIsInstance(c.is_mongos, bool)
126126
self.assertIsInstance(c.max_pool_size, int)
127-
self.assertIsInstance(c.use_greenlets, bool)
128127
self.assertIsInstance(c.auto_start_request, bool)
129128
self.assertIsInstance(c.tz_aware, bool)
130129
self.assertIsInstance(c.max_bson_size, int)
@@ -272,14 +271,6 @@ def test_properties(self):
272271
self.assertEqual(c.max_bson_size, 4194304)
273272
c.close()
274273

275-
def test_use_greenlets(self):
276-
self.assertFalse(
277-
MongoReplicaSetClient(pair, replicaSet=self.name).use_greenlets)
278-
279-
if have_gevent:
280-
self.assertTrue(MongoReplicaSetClient(
281-
pair, replicaSet=self.name, use_greenlets=True).use_greenlets)
282-
283274
def test_get_db(self):
284275
client = client_context.rs_client
285276

@@ -1175,17 +1166,6 @@ def test_read_mode_secondary(self):
11751166
client.pymongo_test.test_collection.find_one()
11761167

11771168

1178-
# Test concurrent access to a lazily-connecting RS client, with Gevent.
1179-
class TestReplicaSetClientLazyConnectGevent(
1180-
TestReplicaSetClientBase,
1181-
_TestLazyConnectMixin):
1182-
use_greenlets = True
1183-
1184-
@classmethod
1185-
def setUpClass(cls):
1186-
TestReplicaSetClientBase.setUpClass()
1187-
1188-
11891169
class TestReplicaSetClientLazyConnectBadSeeds(
11901170
TestReplicaSetClientBase,
11911171
_TestLazyConnectMixin):

0 commit comments

Comments
 (0)