From b9be11d44265308863e4e8cfb458cd3605091452 Mon Sep 17 00:00:00 2001 From: Kaustubh <55352418+kc611@users.noreply.github.com> Date: Sat, 22 Aug 2020 11:23:50 +0530 Subject: Fixed #31918 -- Allowed QuerySet.in_bulk() to fetch on a single distinct field. --- tests/lookup/tests.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'tests') 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): -- cgit v1.3