diff options
| author | Ekaterina Vahrusheva <lajilit@gmail.com> | 2023-03-02 21:38:05 +0300 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-03-03 06:00:10 +0100 |
| commit | 55bcbd8d172b689811fae17cde2f09218dd74e9c (patch) | |
| tree | e0ea5620852d253e02ffddb1e860b5a22189c236 /tests/lookup | |
| parent | 56e5ea805ba0ddfbdd74b00714bf893af1d5a976 (diff) | |
Fixed #34378 -- Made QuerySet.in_bulk() not clear odering when id_list is passed.
This reverts 340eaded4e30cf25bcd4e9781d33a617fe9c0f84.
Diffstat (limited to 'tests/lookup')
| -rw-r--r-- | tests/lookup/tests.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/lookup/tests.py b/tests/lookup/tests.py index 53eb76d174..9778eaa5c5 100644 --- a/tests/lookup/tests.py +++ b/tests/lookup/tests.py @@ -247,6 +247,35 @@ class LookupTests(TestCase): Article.objects.in_bulk([self.au1], field_name="author") @skipUnlessDBFeature("can_distinct_on_fields") + def test_in_bulk_preserve_ordering(self): + articles = ( + Article.objects.order_by("author_id", "-pub_date") + .distinct("author_id") + .in_bulk([self.au1.id, self.au2.id], field_name="author_id") + ) + self.assertEqual( + articles, + {self.au1.id: self.a4, self.au2.id: self.a5}, + ) + + @skipUnlessDBFeature("can_distinct_on_fields") + def test_in_bulk_preserve_ordering_with_batch_size(self): + old_max_query_params = connection.features.max_query_params + connection.features.max_query_params = 1 + try: + articles = ( + Article.objects.order_by("author_id", "-pub_date") + .distinct("author_id") + .in_bulk([self.au1.id, self.au2.id], field_name="author_id") + ) + self.assertEqual( + articles, + {self.au1.id: self.a4, self.au2.id: self.a5}, + ) + finally: + connection.features.max_query_params = old_max_query_params + + @skipUnlessDBFeature("can_distinct_on_fields") def test_in_bulk_distinct_field(self): self.assertEqual( Article.objects.order_by("headline") |
