summaryrefslogtreecommitdiff
path: root/tests/queries/tests.py
AgeCommit message (Collapse)Author
2021-09-30[4.0.x] Fixed #33159 -- Reverted "Fixed #32970 -- Changed WhereNode.clone() ↵Mariusz Felisiak
to create a shallow copy of children." This reverts commit e441847ecae99dd1ccd0d9ce76dbcff51afa863c. A shallow copy is not enough because querysets can be reused and evaluated in nested nodes, which shouldn't mutate JOIN aliases. Thanks Michal Čihař for the report. Backport of 903aaa35e5ceaa33bfc9b19b7f6da65ce5a91dd4 from main
2021-07-15Refs #32508 -- Raised Type/ValueError instead of using "assert" in ↵Daniyal
django.db.models. Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2021-05-13Fixed #32717 -- Fixed filtering of querysets combined with the | operator.Simon Charette
Address a long standing bug in a Where.add optimization to discard equal nodes that was surfaced by implementing equality for Lookup instances in bbf141bcdc31f1324048af9233583a523ac54c94. Thanks Shaheed Haque for the report.
2021-05-04Fixed #32693 -- Quoted and lowercased generated column aliases.Hasan Ramezani
2021-04-22Used assertCountEqual() in ExcludeTests.test_exclude_subquery().Mariusz Felisiak
2021-04-21Fixed #32650 -- Fixed handling subquery aliasing on queryset combination.Simon Charette
This issue started manifesting itself when nesting a combined subquery relying on exclude() since 8593e162c9cb63a6c0b06daf045bc1c21eb4d7c1 but sql.Query.combine never properly handled subqueries outer refs in the first place, see QuerySetBitwiseOperationTests.test_subquery_aliases() (refs #27149). Thanks Raffaele Salmaso for the report.
2021-03-10Refs #32508 -- Raised TypeError instead of using "assert" on unsupported ↵Mariusz Felisiak
operations for sliced querysets.
2021-01-14Refs #7098 -- Removed support for passing raw column aliases to order_by().Mariusz Felisiak
Per deprecation timeline.
2020-11-06Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly.Hasan Ramezani
This also replaces assertQuerysetEqual() to assertSequenceEqual()/assertCountEqual() where appropriate. Co-authored-by: Peter Inglesby <peter.inglesby@gmail.com> Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2020-10-28Fixed #32143 -- Used EXISTS to exclude multi-valued relationships.Simon Charette
As mentioned in the pre-existing split_exclude() docstring EXISTS is easier to optimize for query planers and circumvents the IN (NULL) handling issue.
2020-10-27Removed an obsolete query test that assumes serial pks.Tim Graham
The code from the original fix (922aba3def68e57c405a0e50d353a790af85b00a) was removed in 419de7b00daabf5e9be064198d370cdbf19b5f2d.
2020-09-16Fixed #31843 -- Fixed pickling named values from QuerySet.values_list().Kwist
2020-09-14Fixed #31990 -- Fixed QuerySet.ordered for GROUP BY queries on models with ↵Mariusz Felisiak
Meta.ordering. Regression in 0ddb4ebf7bfcc4730c80a772dd146a49ef6895f6. Thanks Julien Dutriaux for the report.
2020-07-29Fixed #31783 -- Fixed crash when filtering againts "negate" field.Hasan Ramezani
Thanks Simon Charette for the initial patch.
2020-07-06Fixed #23797 -- Fixed QuerySet.exclude() when rhs is a nullable column.Jacob Walls
2020-06-08Fixed #31664 -- Reallowed using non-expressions having filterable attribute ↵Nicolas Baccelli
as rhs in queryset filters. Regression in 4edad1ddf6203326e0be4bdb105beecb0fe454c4.
2020-05-15Refs #31395 -- Relied on setUpTestData() test data isolation in various tests.Simon Charette
2020-05-15Refs #13227 -- Adjusted a test to avoid making a shared test model unpickable.Simon Charette
This allowed the Note model to be used in setUpTestData() which requires assigned model instances to be copy.deepcopy()'able.
2020-04-06Fixed #31426 -- Added proper field validation to QuerySet.order_by().Simon Charette
Resolve the field reference instead of using fragile regex based string reference validation.
2020-04-06Refs #7098 -- Deprecated passing raw column aliases to order_by().Simon Charette
Now that order_by() has expression support passing RawSQL() can achieve the same result. This was also already supported through QuerySet.extra(order_by) for years but this API is more or less deprecated at this point.
2019-11-18Removed unnecessary parentheses in various code.Jon Dufresne
2019-09-02Fixed #30739 -- Fixed exclusion of multi-valued lookup against outer rhs.Simon Charette
OuterRef right hand sides have to be nested, just like F rhs have to, during the subquery pushdown split_exclude performs to ensure they are resolved against the outer query aliases.
2019-08-05Fixed #28393 -- Added helpful error messages for invalid ↵Diederik van der Boor
AutoField/FloatField/IntegerField values. Co-authored-by: Diederik van der Boor <vdboor@edoburu.nl> Co-authored-by: Nick Pope <nick.pope@flightdataservices.com>
2019-07-23Improved error message when index in __getitem__() is invalid.Jon Dufresne
2019-07-10Fixed #30628 -- Adjusted expression identity to differentiate bound fields.Simon Charette
Expressions referring to different bound fields should not be considered equal. Thanks Julien Enselme for the detailed report. Regression in bc7e288ca9554ac1a0a19941302dea19df1acd21.
2019-06-25Fixed #30477 -- Made reverse lookup use Field.get_db_prep_value() from the ↵can
target field.
2019-04-15Refs #23758 -- Used RecursionError instead of RuntimeError to raise nested ↵Simon Charette
subquery errors. RecursionError was introduced in Python 3.5 and subclasses RuntimeError.
2019-04-15Refs #27149 -- Based recursive nested subquery detection on ↵Simon Charette
sys.getrecursionlimit(). This makes sure the test_avoid_infinite_loop_on_too_many_subqueries test doesn't fail on systems with a non-default recursion limit.
2019-03-30Refs #29697 -- Added test for excluding m2m intermediary table.can
2019-03-28Refs #18726 -- Added test for excluding circular related fields with F() ↵Mariusz Felisiak
expression. Fixed in f19a4945e1191e1696f1ad8e6cdc6f939c702728.
2019-03-23Fixed #21703 -- Fixed a crash when excluding a related field with a F().Simon Charette
2019-03-21Refs #27149 -- Moved subquery expression resolving to Query.Simon Charette
This makes Subquery a thin wrapper over Query and makes sure it respects the Expression source expression API by accepting the same number of expressions as it returns. Refs #30188. It also makes OuterRef usable in Query without Subquery wrapping. This should allow Query's internals to more easily perform subquery push downs during split_exclude(). Refs #21703.
2019-02-09Removed uneeded generator expressions and list comprehensions.Sergey Fedoseev
2019-02-06Fixed #30159 -- Removed unneeded use of OrderedDict.Nick Pope
Dicts preserve order since Python 3.6.
2018-11-27Switched TestCase to SimpleTestCase where possible in Django's tests.Tim Graham
2018-11-15Fixed #17930 -- Allowed ORing (|) with sliced QuerySets.Ian Foote
2018-09-26Fixed #29630 -- Fixed crash of sliced queries with multiple columns with the ↵Mariusz Felisiak
same name on Oracle 12.1. Regression in 0899d583bdb140910698d00d17f5f1abc8774b07. Thanks Tim Graham for the review and Jani Tiainen for help.
2018-09-13Refs #14357 -- Deprecated Meta.ordering affecting GROUP BY queries.Ramiro Morales
Thanks Ramiro Morales for contributing to the patch.
2018-07-16Fixed #28917 -- Prevented Paginator's unordered warning on EmptyQuerySet.Josh Schneier
Thanks carltongibson for the idea and weijunji for the initial patch.
2018-07-09Fixed some assertTrue() that were intended to be assertEqual().Sergey Fedoseev
2018-06-06Refs #29451 -- Used quote_name for column names in tests.Carlton Gibson
Regression in a253a580e6f20fb7087490225538422eb6cab0bb
2018-06-05Refs #29451 -- Quoted MySQL column names in tests.Tom Forbes
2018-03-16Fixed hanging indentation in various code.Mariusz Felisiak
2018-02-08Fixed #29108 -- Fixed crash in aggregation of distinct+ordered+sliced querysets.Simon Charette
Regression in 4acae21846f6212aa992763e587c7e201828d7b0. Thanks Stephen Brooks for the report.
2018-02-07Renamed the allow_sliced_subqueries database feature to ↵Mariusz Felisiak
allow_sliced_subqueries_with_in. After 0899d583bdb140910698d00d17f5f1abc8774b07 this database feature is false only on MySQL which doesn't support sliced subqueries only with IN/ALL/ANY/SOME.
2018-01-20Refs #20487 -- Added test for querying mixed case fields with common related ↵Mariusz Felisiak
model. Thanks Shai Berger for the review.
2017-12-28Removed unnecessary trailing commas and spaces in various code.Mariusz Felisiak
2017-09-06Fixed #15648 -- Allowed QuerySet.values_list() to return a namedtuple.Sergey Fedoseev
2017-09-05Fixed #11557 -- Added support for a list of fields in Meta.get_latest_by and ↵François Freitag
QuerySet.earliest()/latest().
2017-07-29Used assertRaisesMessage() to test Django's error messages.Mads Jensen