323 Commits

Author SHA1 Message Date
Bastien Gerard
c28bb517cb Use Queryset._query instead of Cursor.__spec for count() 2020-12-13 10:43:26 +01:00
Bastien Gerard
8a1a68ea7c fix flake8 warnings 2020-12-13 00:14:53 +01:00
Bastien Gerard
eabb8f60f5 autoformat with pyupgrade 2020-12-13 00:14:53 +01:00
Bastien Gerard
c00a378776 autoformat with updated black 2020-12-13 00:14:52 +01:00
Bastien Gérard
f4962fbc40 remove utf8 encoding declaration in test files as it's not needed/recommended 2020-10-30 21:10:21 +01:00
Bastien Gérard
7116dec74a run black to please ci 2020-08-11 21:55:22 +02:00
Johnny Chang
3e1c83f8fa Fix query transformation regarding special operators 2020-08-04 00:30:15 +08:00
Bastien Gérard
194b0cac88 improve doc + changelog 2020-05-26 23:45:35 +02:00
Bastien Gérard
7b4175fc5c Merge branch 'master' of github.com:MongoEngine/mongoengine into fix_limit0_bug 2020-05-26 23:44:05 +02:00
Bastien Gérard
adb5f74ddb Fix a bug in limit0 #2311 2020-05-26 23:37:55 +02:00
Bastien Gérard
49f9bca23b fix black formatting 2020-05-23 23:08:56 +02:00
Agustin Barto
1698f398eb Add _read_concern to copied properties. Add read_concern to aggregate. Add test to check the read_concern and read_preference values are kept after cloning. 2020-05-20 18:56:13 -03:00
Bastien Gérard
38ebb5abf4
Merge branch 'master' into feature/allow-setting-read-concern-queryset 2020-04-26 22:36:47 +02:00
Bastien Gérard
ef7da36ac6 Update pre-commit and fix existing flake8 warnings once for all 2020-04-25 21:36:07 +02:00
Bastien Gérard
87f4d1a323 Merge branch 'master' of github.com:MongoEngine/mongoengine into drop_py2_support 2020-04-25 13:51:21 +02:00
Bastien Gérard
2b0157aecd Improve Queryset.get to avoid confusing message in case multiple match are found 2020-03-22 14:08:29 +01:00
Agustin Barto
bc77322c2f Update unit tests 2020-03-17 21:49:17 -03:00
Bastien Gérard
4e58e9f8d1 Merge branch 'master' of github.com:MongoEngine/mongoengine into feature/allow-setting-read-concern-queryset 2020-03-15 22:25:59 +01:00
Bastien Gérard
beabaee345 Merge branch 'master' of github.com:MongoEngine/mongoengine into support-elemmatch-projection 2020-03-15 22:08:20 +01:00
Bastien Gérard
8086576677 get rid of six 2020-03-11 23:07:03 +01:00
Bastien Gérard
03e34299f0 clean code related to Py2 + six.text_type & six.string_types 2020-03-11 21:50:50 +01:00
Bastien Gérard
421e3f324f Drop python2 support 2020-03-09 00:18:52 +01:00
Bastien Gérard
a0b803959c Merge branch 'master' of github.com:MongoEngine/mongoengine into py2py3_improve_compat 2020-03-08 14:44:39 +01:00
Bastien Gérard
ff4d57032a reformat w black 2020-03-03 23:51:11 +01:00
Bastien Gérard
ba34589065 Merge branch 'master' of github.com:MongoEngine/mongoengine into abarto-feature/allow-setting-read-concern-queryset 2020-03-03 23:50:36 +01:00
Filip Kucharczyk
d287f480e5 Fix for combining raw and regular filters 2020-03-03 15:18:58 +01:00
Bastien Gérard
cfb4943986 reformat with black 2020-03-02 22:49:21 +01:00
Agustin Barto
4bca3de42f Add support for the elemMatch projection operator. Add basic tests to the fields queryset method. 2020-02-14 16:43:07 -03:00
Agustin
8e17e42e26 Allow setting read_concern 2020-01-24 13:11:07 -03:00
Bastien Gérard
aa02f87b69 change & deprecate .aggregate api to mimic pymongo's interface + separate the aggregation tests from the large test_queryset.py file 2019-12-27 09:23:15 +01:00
Bastien Gérard
2ca905b6e5 Finalize python2/3 codebase compatibility and get rid of 2to3 2019-12-13 23:43:04 +01:00
Filip Kucharczyk
cb77bb6b69 Implement __bool__ on Q and QCombination 2019-12-05 00:27:41 +01:00
Filip Kucharczyk
3f75f30f26 Run black 2019-12-03 09:03:49 +01:00
Filip Kucharczyk
0458ef869e Add __eq__ to Q and Q operations 2019-12-03 00:44:13 +01:00
Bastien Gérard
81647d67a0 fix recent tests update with unittest2pytest 2019-10-31 23:06:40 +01:00
Bastien Gérard
d8924ed892 remove inheritance from unittest.TestCase on basic test classes 2019-10-31 23:02:28 +01:00
Bastien Gérard
bc0c55e49a improve tests health (flake8 warnings) 2019-10-31 23:01:27 +01:00
Bastien Gérard
c61c6a8525 fix == None assertions 2019-10-31 22:59:49 +01:00
Bastien Gérard
3e764d068c fix remaining assertRaises 2019-10-31 22:59:49 +01:00
Bastien Gérard
ac25f4b98b ran unittest2pytest 2019-10-31 22:59:49 +01:00
Bastien Gérard
e3cd553f82 add latest pymongo 3.9 as part of the CI 2019-10-04 21:46:47 +02:00
Bastien Gérard
7d94af0e31 add test coverage for no_cursor_timeout to support recent fix 2019-09-11 21:53:30 +02:00
Bastien Gérard
693195f70b fix test_pickable that was brought back to life recently 2019-08-31 22:28:31 +03:00
Bastien Gérard
2267b7e7d7 rename remaining files for pytest migration 2019-08-30 16:27:56 +03:00
Bastien Gérard
ddececbfea rename all test files so that they are prefixed by test_{orginal_filename}.py 2019-08-28 16:01:44 +03:00
Stefan Wójcik
50555ec73e
Better management of the automatic "_cls" field (#2112)
* Rename BaseQuerySet._initial_query to BaseQuerySet._cls_query

This new name more accurately reflects the purpose of the dict. It is either
empty for documents that don't use inheritance or it contains a `{"_cls": ...}`
shape query. There was nothing "initial" about it per se.

* Drop read_preference as a kwarg on BaseQuerySet.__call__/filter

It was a poor design choice to offer two different ways to do the same thing:
1. `SomeDoc.objects(foo=bar, bar=baz).read_preference(...)`
2. `SomeDoc.objects(foo=bar, bar=baz, read_preference=...)`

Option 1 is good because it's immediately obvious which part defines the query
to be used and which part defines the read preference.

Option 2 is bad because you don't immediately know whether `read_preference`
is a query kwarg or a reserved keyword with some special behavior. If you
wanted to be particularly cruel, you could even write
`SomeDoc.objects(foo=bar, read_preference=..., bar=baz)`.

THIS IS A BREAKING CHANGE. From now on you have to use the
`BaseQuerySet.read_preference(...)` method.

* Add a BaseQuerySet.clear_cls_query method + get rid of the class_check kwarg

This is similar to what the previous commit did to read preference except that
in this case we were still missing a `BaseQuerySet` method for clearing the
`_cls` query.

Now, instead of the undocumented, untested, and confusing interface:
    `ParentDoc.objects(foo=bar, bar=baz, class_check=False)`
We do:
    `ParentDoc.objects(foo=bar, bar=baz).clear_cls_query()`
2019-07-03 11:07:55 +02:00
Stefan Wójcik
b47669403b
Format the codebase using Black (#2109)
This commit:
1. Formats all of our existing code using `black`.
2. Adds a note about using `black` to `CONTRIBUTING.rst`.
3. Runs `black --check` as part of CI (failing builds that aren't properly formatted).
2019-06-27 13:05:54 +02:00
Stefan Wojcik
91899acfe5 Clarify unack'd write concern not returning the deleted count [ci skip] 2019-06-26 15:14:43 +02:00
Bastien Gérard
8f57279dc7 remove pymongo deprecated methods: find_and_modify & remove 2019-06-19 23:04:23 +02:00
Bastien Gérard
6e8ea50c19 "added another aggregation test"
This reverts commit 4c31193b82ca665fe27b1ddce3cbacbb2b7fcd32.
2019-06-14 21:04:02 +02:00