diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c5b45045..b68a311a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -16,8 +16,8 @@ jobs: strategy: fail-fast: false matrix: - mongodb-version: ["4.0", "4.2", "4.4", "5.0", "6.0", "7.0"] - python: ["3.8", "3.9", "3.10", "3.11", "3.12"] + mongodb-version: ["4.4", "5.0", "6.0", "7.0", "8.0"] + python: ["3.8", "3.9", "3.10", "3.11"] steps: - uses: actions/checkout@v4 diff --git a/example_app/models.py b/example_app/models.py index 7ec0f806..7eafe4d1 100644 --- a/example_app/models.py +++ b/example_app/models.py @@ -34,9 +34,9 @@ class AllFieldsModel(db.Document): file_field = db.FileField() float_field = db.FloatField() int_field = db.IntField() - list_field = db.ListField(field=db.StringField) + list_field = db.ListField(field=db.StringField()) reference_field = db.ReferenceField(document_type=Todo) - sorted_list_field = db.SortedListField(field=db.StringField) + sorted_list_field = db.SortedListField(field=db.StringField()) string_field = db.StringField() url_field = db.URLField() cached_reference_field = db.CachedReferenceField(document_type=Todo) diff --git a/noxfile.py b/noxfile.py index 843f9155..ab1498b0 100644 --- a/noxfile.py +++ b/noxfile.py @@ -57,7 +57,7 @@ def lint(session): session.run("pre-commit", "run", "-a") -@nox.session(python=["3.8", "3.9", "3.10", "3.11", "3.12"]) +@nox.session(python=["3.8", "3.9", "3.10", "3.11"]) @nox.parametrize("flask", ["==1.1.4", "==2.0.3", "==2.3.3", ">=3.0.0"]) @nox.parametrize("mongoengine", ["==0.21.0", "==0.22.1", "==0.23.1", ">=0.24.1"]) @nox.parametrize("toolbar", [True, False]) @@ -86,7 +86,7 @@ def _run_in_docker(session, db_version="5.0"): session.run_always("docker", "rm", "-fv", "nox_docker_test", external=True) -@nox.session(python=["3.8", "3.9", "3.10", "3.11", "3.12"]) +@nox.session(python=["3.8", "3.9", "3.10", "3.11"]) @nox.parametrize("flask", ["==1.1.4", "==2.0.3", "==2.3.3", ">=3.0.0"]) @nox.parametrize("mongoengine", ["==0.21.0", "==0.22.1", "==0.23.1", ">=0.24.1"]) @nox.parametrize("toolbar", [True, False]) @@ -98,7 +98,7 @@ def full_tests(session, flask, mongoengine, toolbar, wtf, db_version): _run_in_docker(session, db_version) -@nox.session(python=["3.8", "3.9", "3.10", "3.11", "3.12"]) +@nox.session(python=["3.8", "3.9", "3.10", "3.11"]) @nox.parametrize("toolbar", [True, False]) @nox.parametrize("wtf", [True, False]) @nox.parametrize("db_version", ["5.0", "6.0", "7.0"]) diff --git a/pyproject.toml b/pyproject.toml index 64c7a237..a9f0ddbc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,7 +17,6 @@ classifiers = [ "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", "Programming Language :: Python :: Implementation :: PyPy", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", @@ -54,7 +53,7 @@ wtf = ["WTForms[email]>=3.0.0", ] toolbar = ["Flask-DebugToolbar>=0.11.0"] dev = [ - "black==24.10.0", + "black==24.8.0", "pre-commit", "pytest", "pytest-cov", @@ -101,7 +100,7 @@ write_to = "flask_mongoengine/_version.py" [tool.black] line-length = 88 -target-version = ['py38'] +target-version = ['py310'] exclude = ''' /( \.eggs diff --git a/tests/test_debug_panel.py b/tests/test_debug_panel.py index 4d292cdd..ef26b66a 100644 --- a/tests/test_debug_panel.py +++ b/tests/test_debug_panel.py @@ -225,9 +225,9 @@ def test__normal_command__logged(self, py_db, registered_monitoring): def test__failed_command_logged__logged(self, py_db, registered_monitoring): """Failed command index 1 in provided test.""" - pymongo.collection.Collection(py_db, "test", create=True) + col = pymongo.collection.Collection(py_db, "test", create=True) with contextlib.suppress(OperationFailure): - pymongo.collection.Collection(py_db, "test", create=True) + col.create_index([["_id", -1]], name="foo") assert registered_monitoring.started_operations_count == 2 assert registered_monitoring.succeeded_operations_count == 1 assert registered_monitoring.failed_operations_count == 1 @@ -244,11 +244,13 @@ def test__failed_command_logged__logged(self, py_db, registered_monitoring): assert registered_monitoring.queries[1].size >= 0 assert registered_monitoring.queries[1].database == "pymongo_test_database" assert registered_monitoring.queries[1].collection == "test" - assert registered_monitoring.queries[1].command_name == "create" + assert registered_monitoring.queries[1].command_name == "createIndexes" assert isinstance(registered_monitoring.queries[1].operation_id, int) - assert registered_monitoring.queries[1].server_command["create"] == "test" assert ( - "already exists" + registered_monitoring.queries[1].server_command["createIndexes"] == "test" + ) + assert ( + "_id index must be {_id: 1}" in registered_monitoring.queries[1].server_response["errmsg"] ) assert registered_monitoring.queries[1].request_status == "Failed" diff --git a/tests/test_forms_v2.py b/tests/test_forms_v2.py index 1884139b..57499407 100644 --- a/tests/test_forms_v2.py +++ b/tests/test_forms_v2.py @@ -87,9 +87,9 @@ class AllFieldsModel(db.Document): file_field = db.FileField() float_field = db.FloatField() int_field = db.IntField() - list_field = db.ListField(field=db.StringField) + list_field = db.ListField(field=db.StringField()) reference_field = db.ReferenceField(document_type=Todo) - sorted_list_field = db.SortedListField(field=db.StringField) + sorted_list_field = db.SortedListField(field=db.StringField()) string_field = db.StringField() url_field = db.URLField() cached_reference_field = db.CachedReferenceField(document_type=Todo)