Skip to content

Commit 4dd8432

Browse files
authored
Merge pull request #2849 from efrederickson/patch-1
Update to support pymongo 4.9
2 parents 75e7779 + 673b572 commit 4dd8432

File tree

6 files changed

+26
-11
lines changed

6 files changed

+26
-11
lines changed

.github/workflows/github-actions.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ env:
2929
PYMONGO_4_6: 4.6.2
3030
PYMONGO_4_7: 4.7.3
3131
PYMONGO_4_8: 4.8.0
32+
PYMONGO_4_9: 4.9
3233

3334
MAIN_PYTHON_VERSION: 3.9
3435

@@ -83,6 +84,9 @@ jobs:
8384
- python-version: "3.11"
8485
MONGODB: $MONGODB_7_0
8586
PYMONGO: $PYMONGO_4_8
87+
- python-version: "3.11"
88+
MONGODB: $MONGODB_7_0
89+
PYMONGO: $PYMONGO_4_9
8690
steps:
8791
- uses: actions/checkout@v4
8892
- name: Set up Python ${{ matrix.python-version }}

mongoengine/connection.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@
44

55
from pymongo import MongoClient, ReadPreference, uri_parser
66
from pymongo.common import _UUID_REPRESENTATIONS
7-
from pymongo.database import _check_name
7+
8+
try:
9+
from pymongo.database_shared import _check_name
10+
except ImportError:
11+
from pymongo.database import _check_name
812

913
# DriverInfo was added in PyMongo 3.7.
1014
try:

tests/fields/test_datetime_field.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22

33
import pytest
44

5+
from mongoengine import *
6+
from mongoengine import connection
7+
from tests.utils import MongoDBTestCase, get_as_pymongo
8+
59
try:
610
import dateutil
711
except ImportError:
812
dateutil = None
913

10-
from mongoengine import *
11-
from mongoengine import connection
12-
from tests.utils import MongoDBTestCase, get_as_pymongo
13-
1414

1515
class TestDateTimeField(MongoDBTestCase):
1616
def test_datetime_from_empty_string(self):

tests/queryset/test_queryset_aggregation.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,11 @@ class Bar(Document):
1919
bars = Bar.objects.read_preference(
2020
ReadPreference.SECONDARY_PREFERRED
2121
).aggregate(pipeline)
22-
assert (
23-
bars._CommandCursor__collection.read_preference
24-
== ReadPreference.SECONDARY_PREFERRED
25-
)
22+
if hasattr(bars, "_CommandCursor__collection"):
23+
read_pref = bars._CommandCursor__collection.read_preference
24+
else: # pymongo >= 4.9
25+
read_pref = bars._collection.read_preference
26+
assert read_pref == ReadPreference.SECONDARY_PREFERRED
2627

2728
def test_queryset_aggregation_framework(self):
2829
class Person(Document):

tests/test_connection.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import uuid
44

55
import pymongo
6+
import pymongo.database
7+
import pymongo.mongo_client
68
import pytest
79
from bson.tz_util import utc
810
from pymongo import MongoClient, ReadPreference
@@ -608,7 +610,10 @@ def test_connect_with_replicaset_via_kwargs(self):
608610
connection kwargs
609611
"""
610612
c = connect(replicaset="local-rs")
611-
assert c._MongoClient__options.replica_set_name == "local-rs"
613+
if hasattr(c, "_MongoClient__options"):
614+
assert c._MongoClient__options.replica_set_name == "local-rs"
615+
else: # pymongo >= 4.9
616+
assert c._options.replica_set_name == "local-rs"
612617
db = get_db()
613618
assert isinstance(db, pymongo.database.Database)
614619
assert db.name == "test"

tox.ini

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[tox]
2-
envlist = pypy3-{mg34,mg36,mg39,mg311,mg312,mg4,mg432,mg441,mg462,mg473,mg480}
2+
envlist = pypy3-{mg34,mg36,mg39,mg311,mg312,mg4,mg432,mg441,mg462,mg473,mg480,mg49}
33
skipsdist = True
44

55
[testenv]
@@ -16,5 +16,6 @@ deps =
1616
mg462: pymongo>=4.6,<4.7
1717
mg473: pymongo>=4.7,<4.8
1818
mg480: pymongo>=4.8,<4.9
19+
mg49: pymongo>=4.9,<5.0
1920
setenv =
2021
PYTHON_EGG_CACHE = {envdir}/python-eggs

0 commit comments

Comments
 (0)