summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorKaustubh <55352418+kc611@users.noreply.github.com>2020-08-22 11:23:50 +0530
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-08-26 09:43:39 +0200
commitb9be11d44265308863e4e8cfb458cd3605091452 (patch)
treecf3ad9584a62bcd031c83b333fdd6bba0905b266 /tests
parent547a07fa7ec4364ea9ecd2aabfdd16ee4c63003c (diff)
Fixed #31918 -- Allowed QuerySet.in_bulk() to fetch on a single distinct field.
Diffstat (limited to 'tests')
-rw-r--r--tests/lookup/tests.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/lookup/tests.py b/tests/lookup/tests.py
index 3d8a801933..9094542808 100644
--- a/tests/lookup/tests.py
+++ b/tests/lookup/tests.py
@@ -207,6 +207,24 @@ class LookupTests(TestCase):
with self.assertRaisesMessage(ValueError, msg):
Article.objects.in_bulk([self.au1], field_name='author')
+ @skipUnlessDBFeature('can_distinct_on_fields')
+ def test_in_bulk_distinct_field(self):
+ self.assertEqual(
+ Article.objects.order_by('headline').distinct('headline').in_bulk(
+ [self.a1.headline, self.a5.headline],
+ field_name='headline',
+ ),
+ {self.a1.headline: self.a1, self.a5.headline: self.a5},
+ )
+
+ @skipUnlessDBFeature('can_distinct_on_fields')
+ def test_in_bulk_multiple_distinct_field(self):
+ msg = "in_bulk()'s field_name must be a unique field but 'pub_date' isn't."
+ with self.assertRaisesMessage(ValueError, msg):
+ Article.objects.order_by('headline', 'pub_date').distinct(
+ 'headline', 'pub_date',
+ ).in_bulk(field_name='pub_date')
+
@isolate_apps('lookup')
def test_in_bulk_non_unique_meta_constaint(self):
class Model(models.Model):