Skip to content

Commit b08db0a

Browse files
committed
PYTHON-2927 PYTHON-2937 Skip failing tests on PyPy (#753)
Cleanup test clients more eagerly. (cherry picked from commit df6f649)
1 parent b56bffe commit b08db0a

File tree

6 files changed

+19
-1
lines changed

6 files changed

+19
-1
lines changed

test/test_client.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1657,6 +1657,7 @@ def test_direct_connection(self):
16571657

16581658
@unittest.skipIf(sys.platform.startswith('java'),
16591659
'Jython does not support gc.get_objects')
1660+
@unittest.skipIf('PyPy' in sys.version, 'PYTHON-2927 fails often on PyPy')
16601661
def test_continuous_network_errors(self):
16611662
def server_description_count():
16621663
i = 0

test/test_pooling.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,7 @@ class TestPoolMaxSize(_TestPoolingBase):
421421
def test_max_pool_size(self):
422422
max_pool_size = 4
423423
c = rs_or_single_client(maxPoolSize=max_pool_size)
424+
self.addCleanup(c.close)
424425
collection = c[DB].test
425426

426427
# Need one document.
@@ -456,6 +457,7 @@ def f():
456457

457458
def test_max_pool_size_none(self):
458459
c = rs_or_single_client(maxPoolSize=None)
460+
self.addCleanup(c.close)
459461
collection = c[DB].test
460462

461463
# Need one document.

test/test_read_write_concern_spec.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ def test_omit_default_read_write_concern(self):
5252
listener = EventListener()
5353
# Client with default readConcern and writeConcern
5454
client = rs_or_single_client(event_listeners=[listener])
55+
self.addCleanup(client.close)
5556
collection = client.pymongo_test.collection
5657
# Prepare for tests of find() and aggregate().
5758
collection.insert_many([{} for _ in range(10)])
@@ -215,6 +216,7 @@ def test_error_includes_errInfo(self):
215216
def test_write_error_details_exposes_errinfo(self):
216217
listener = EventListener()
217218
client = rs_or_single_client(event_listeners=[listener])
219+
self.addCleanup(client.close)
218220
db = client.errinfotest
219221
self.addCleanup(client.drop_database, "errinfotest")
220222
validator = {"x": {"$type": "string"}}

test/test_retryable_writes.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -531,6 +531,7 @@ def test_increment_transaction_id_without_sending_command(self):
531531
listener = OvertCommandListener()
532532
client = rs_or_single_client(
533533
retryWrites=True, event_listeners=[listener])
534+
self.addCleanup(client.close)
534535
topology = client._topology
535536
select_server = topology.select_server
536537

test/test_ssl.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -576,6 +576,7 @@ def test_mongodb_x509_auth(self):
576576
ssl=True,
577577
ssl_cert_reqs=ssl.CERT_NONE,
578578
ssl_certfile=CLIENT_PEM)
579+
self.addCleanup(noauth.close)
579580

580581
self.assertRaises(OperationFailure, noauth.pymongo_test.test.count)
581582

@@ -587,6 +588,7 @@ def test_mongodb_x509_auth(self):
587588
ssl_cert_reqs=ssl.CERT_NONE,
588589
ssl_certfile=CLIENT_PEM,
589590
event_listeners=[listener])
591+
self.addCleanup(auth.close)
590592

591593
if client_context.version.at_least(3, 3, 12):
592594
# No error
@@ -609,6 +611,7 @@ def test_mongodb_x509_auth(self):
609611
ssl=True,
610612
ssl_cert_reqs=ssl.CERT_NONE,
611613
ssl_certfile=CLIENT_PEM)
614+
self.addCleanup(client.close)
612615
# No error
613616
client.pymongo_test.test.find_one()
614617

@@ -617,6 +620,7 @@ def test_mongodb_x509_auth(self):
617620
ssl=True,
618621
ssl_cert_reqs=ssl.CERT_NONE,
619622
ssl_certfile=CLIENT_PEM)
623+
self.addCleanup(client.close)
620624
if client_context.version.at_least(3, 3, 12):
621625
# No error
622626
client.pymongo_test.test.find_one()
@@ -625,13 +629,16 @@ def test_mongodb_x509_auth(self):
625629
with self.assertRaises(ConfigurationError):
626630
client.pymongo_test.test.find_one()
627631

632+
# No error
633+
client.pymongo_test.test.find_one()
628634
# Auth should fail if username and certificate do not match
629635
uri = ('mongodb://%s@%s:%d/?authMechanism='
630636
'MONGODB-X509' % (
631637
quote_plus("not the username"), host, port))
632638

633639
bad_client = MongoClient(
634640
uri, ssl=True, ssl_cert_reqs="CERT_NONE", ssl_certfile=CLIENT_PEM)
641+
self.addCleanup(bad_client.close)
635642

636643
with self.assertRaises(OperationFailure):
637644
bad_client.pymongo_test.test.find_one()
@@ -643,6 +650,7 @@ def test_mongodb_x509_auth(self):
643650
ssl=True,
644651
ssl_cert_reqs=ssl.CERT_NONE,
645652
ssl_certfile=CLIENT_PEM)
653+
self.addCleanup(bad_client.close)
646654

647655
with self.assertRaises(OperationFailure):
648656
bad_client.pymongo_test.test.find_one()

test/test_transactions.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,9 @@ def gridfs_open_upload_stream(*args, **kwargs):
292292
@client_context.require_version_min(4, 2)
293293
@client_context.require_transactions
294294
def test_transaction_starts_with_batched_write(self):
295+
if 'PyPy' in sys.version and client_context.tls:
296+
self.skipTest('PYTHON-2937 PyPy is so slow sending large '
297+
'messages over TLS that this test fails')
295298
# Start a transaction with a batch of operations that needs to be
296299
# split.
297300
listener = OvertCommandListener()
@@ -301,7 +304,8 @@ def test_transaction_starts_with_batched_write(self):
301304
listener.reset()
302305
self.addCleanup(client.close)
303306
self.addCleanup(coll.drop)
304-
ops = [InsertOne({'a': '1'*(10*1024*1024)}) for _ in range(10)]
307+
large_str = '\0'*(10*1024*1024)
308+
ops = [InsertOne({'a': large_str}) for _ in range(10)]
305309
with client.start_session() as session:
306310
with session.start_transaction():
307311
coll.bulk_write(ops, session=session)

0 commit comments

Comments
 (0)