Skip to content

Commit 613e25f

Browse files
committed
fix(tests): fix parallel race condition
1 parent 91b7c62 commit 613e25f

3 files changed

Lines changed: 28 additions & 28 deletions

File tree

tests/asynchronous/test_connection.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -403,21 +403,21 @@ async def test_sharing_async_connections(self):
403403
async def test_async_connect_uri(self):
404404
"""Ensure that the async_connect() method works properly with URIs."""
405405
c = await async_connect(db=MONGO_TEST_DB, alias="admin")
406-
await c.admin.system.users.delete_many({})
407-
await c.mongoenginetest.system.users.delete_many({})
406+
admin_username = f"admin_{uuid.uuid4().hex[:8]}"
407+
user_username = f"user_{uuid.uuid4().hex[:8]}"
408408

409-
await c.admin.command("createUser", "admin", pwd="password", roles=["root"])
409+
await c.admin.command("createUser", admin_username, pwd="password", roles=["root"])
410410

411411
adminadmin_settings = connection._connection_settings[
412412
"adminadmin"
413413
] = connection._connection_settings["admin"].copy()
414-
adminadmin_settings["username"] = "admin"
414+
adminadmin_settings["username"] = admin_username
415415
adminadmin_settings["password"] = "password"
416416
ca = await async_connect(db=MONGO_TEST_DB, alias="adminadmin")
417-
await ca.admin.command("createUser", "username", pwd="password", roles=["dbOwner"])
417+
await ca.admin.command("createUser", user_username, pwd="password", roles=["dbOwner"])
418418

419419
await async_connect(
420-
"testdb_uri", host=f"mongodb://username:password@localhost/{MONGO_TEST_DB}"
420+
f"{MONGO_TEST_DB}_testdb_uri", host=f"mongodb://username:password@localhost/{MONGO_TEST_DB}"
421421
)
422422

423423
conn = await async_get_connection()
@@ -427,8 +427,8 @@ async def test_async_connect_uri(self):
427427
assert isinstance(db, AsyncDatabase)
428428
assert db.name == MONGO_TEST_DB
429429

430-
await c.admin.system.users.delete_many({})
431-
await c.mongoenginetest.system.users.delete_many({})
430+
await c.admin.command("dropUser", user_username)
431+
await c.admin.command("dropUser", admin_username)
432432

433433
@pytest.mark.asyncio
434434
async def test_async_connect_uri_without_db(self):
@@ -487,14 +487,14 @@ async def test_async_connect_uri_with_authsource(self):
487487
# Create users
488488
c = await async_connect(MONGO_TEST_DB)
489489

490-
await c.admin.system.users.delete_many({})
491-
await c.admin.command("createUser", "username2", pwd="password", roles=["dbOwner"])
490+
username = f"user_{uuid.uuid4().hex[:8]}"
491+
await c.admin.command("createUser", username, pwd="password", roles=["dbOwner"])
492492

493493
# Authentication fails without "authSource"
494494
test_conn = await async_connect(
495495
MONGO_TEST_DB,
496496
alias="test1",
497-
host=f"mongodb://username2:password@localhost/{MONGO_TEST_DB}",
497+
host=f"mongodb://{username}:password@localhost/{MONGO_TEST_DB}",
498498
)
499499
with pytest.raises(OperationFailure):
500500
await test_conn.server_info()
@@ -504,15 +504,15 @@ async def test_async_connect_uri_with_authsource(self):
504504
MONGO_TEST_DB,
505505
alias="test2",
506506
host=(
507-
f"mongodb://username2:password@localhost/{MONGO_TEST_DB}?authSource=admin"
507+
f"mongodb://{username}:password@localhost/{MONGO_TEST_DB}?authSource=admin"
508508
),
509509
)
510510
db = await async_get_db("test2")
511511
assert isinstance(db, AsyncDatabase)
512512
assert db.name == MONGO_TEST_DB
513513

514514
# Clear all users
515-
await authd_conn.admin.system.users.delete_many({})
515+
await authd_conn.admin.command("dropUser", username)
516516

517517
@pytest.mark.asyncio
518518
async def test_register_async_connection(self):

tests/synchronous/fields/test_file_field.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
except ImportError:
1919
HAS_PIL = False
2020

21-
from tests.synchronous.utils import MongoDBTestCase
21+
from tests.synchronous.utils import MongoDBTestCase, MONGO_TEST_DB
2222

2323
require_pil = pytest.mark.skipif(not HAS_PIL, reason="PIL not installed")
2424

@@ -483,7 +483,7 @@ class TestImage(Document):
483483
t.image.delete()
484484

485485
def test_file_multidb(self):
486-
register_connection("test_files", "test_files")
486+
register_connection("test_files", f"{MONGO_TEST_DB}_test_files")
487487

488488
class TestFile(Document):
489489
name = StringField()

tests/synchronous/test_connection.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -417,21 +417,21 @@ def test_sharing_connections(self):
417417
def test_connect_uri(self):
418418
"""Ensure that the connect() method works properly with URIs."""
419419
c = connect(db=MONGO_TEST_DB, alias="admin")
420-
c.admin.system.users.delete_many({})
421-
c.mongoenginetest.system.users.delete_many({})
420+
admin_username = f"admin_{uuid.uuid4().hex[:8]}"
421+
user_username = f"user_{uuid.uuid4().hex[:8]}"
422422

423-
c.admin.command("createUser", "admin", pwd="password", roles=["root"])
423+
c.admin.command("createUser", admin_username, pwd="password", roles=["root"])
424424

425425
adminadmin_settings = mongoengine.synchronous.connection._connection_settings[
426426
"adminadmin"
427427
] = mongoengine.synchronous.connection._connection_settings["admin"].copy()
428-
adminadmin_settings["username"] = "admin"
428+
adminadmin_settings["username"] = admin_username
429429
adminadmin_settings["password"] = "password"
430430
ca = connect(db=MONGO_TEST_DB, alias="adminadmin")
431-
ca.admin.command("createUser", "username", pwd="password", roles=["dbOwner"])
431+
ca.admin.command("createUser", user_username, pwd="password", roles=["dbOwner"])
432432

433433
connect(
434-
"testdb_uri", host=f"mongodb://username:password@localhost/{MONGO_TEST_DB}"
434+
f"{MONGO_TEST_DB}_uri", host=f"mongodb://username:password@localhost/{MONGO_TEST_DB}"
435435
)
436436

437437
conn = get_connection()
@@ -441,8 +441,8 @@ def test_connect_uri(self):
441441
assert isinstance(db, pymongo.database.Database)
442442
assert db.name == MONGO_TEST_DB
443443

444-
c.admin.system.users.delete_many({})
445-
c.mongoenginetest.system.users.delete_many({})
444+
c.admin.command("dropUser", user_username)
445+
c.admin.command("dropUser", admin_username)
446446

447447
def test_connect_uri_without_db(self):
448448
"""Ensure connect() method works properly if the URI doesn't
@@ -496,15 +496,15 @@ def test_connect_uri_with_authsource(self):
496496
"""
497497
# Create users
498498
c = connect(MONGO_TEST_DB)
499+
username = f"user_{uuid.uuid4().hex[:8]}"
499500

500-
c.admin.system.users.delete_many({})
501-
c.admin.command("createUser", "username2", pwd="password", roles=["dbOwner"])
501+
c.admin.command("createUser", username, pwd="password", roles=["dbOwner"])
502502

503503
# Authentication fails without "authSource"
504504
test_conn = connect(
505505
MONGO_TEST_DB,
506506
alias="test1",
507-
host=f"mongodb://username2:password@localhost/{MONGO_TEST_DB}",
507+
host=f"mongodb://{username}:password@localhost/{MONGO_TEST_DB}",
508508
)
509509
with pytest.raises(OperationFailure):
510510
test_conn.server_info()
@@ -514,15 +514,15 @@ def test_connect_uri_with_authsource(self):
514514
MONGO_TEST_DB,
515515
alias="test2",
516516
host=(
517-
f"mongodb://username2:password@localhost/{MONGO_TEST_DB}?authSource=admin"
517+
f"mongodb://{username}:password@localhost/{MONGO_TEST_DB}?authSource=admin"
518518
),
519519
)
520520
db = get_db("test2")
521521
assert isinstance(db, pymongo.database.Database)
522522
assert db.name == MONGO_TEST_DB
523523

524524
# Clear all users
525-
authd_conn.admin.system.users.delete_many({})
525+
authd_conn.admin.command("dropUser", username)
526526

527527
def test_register_connection(self):
528528
"""Ensure that connections with different aliases may be registered."""

0 commit comments

Comments
 (0)