diff options
| author | django-bot <ops@djangoproject.com> | 2022-02-03 20:24:19 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-02-07 20:37:05 +0100 |
| commit | 9c19aff7c7561e3a82978a272ecdaad40dda5c00 (patch) | |
| tree | f0506b668a013d0063e5fba3dbf4863b466713ba /tests/defer_regress | |
| parent | f68fa8b45dfac545cfc4111d4e52804c86db68d3 (diff) | |
Refs #33476 -- Reformatted code with Black.
Diffstat (limited to 'tests/defer_regress')
| -rw-r--r-- | tests/defer_regress/models.py | 16 | ||||
| -rw-r--r-- | tests/defer_regress/tests.py | 132 |
2 files changed, 93 insertions, 55 deletions
diff --git a/tests/defer_regress/models.py b/tests/defer_regress/models.py index 78d4c3e646..dd492993b7 100644 --- a/tests/defer_regress/models.py +++ b/tests/defer_regress/models.py @@ -29,7 +29,9 @@ class Child(models.Model): class Leaf(models.Model): name = models.CharField(max_length=10) child = models.ForeignKey(Child, models.CASCADE) - second_child = models.ForeignKey(Child, models.SET_NULL, related_name="other", null=True) + second_child = models.ForeignKey( + Child, models.SET_NULL, related_name="other", null=True + ) value = models.IntegerField(default=42) @@ -67,11 +69,11 @@ class ItemAndSimpleItem(models.Model): class Profile(models.Model): - profile1 = models.CharField(max_length=255, default='profile1') + profile1 = models.CharField(max_length=255, default="profile1") class Location(models.Model): - location1 = models.CharField(max_length=255, default='location1') + location1 = models.CharField(max_length=255, default="location1") class Request(models.Model): @@ -79,10 +81,10 @@ class Request(models.Model): location = models.ForeignKey(Location, models.CASCADE) items = models.ManyToManyField(Item) - request1 = models.CharField(default='request1', max_length=255) - request2 = models.CharField(default='request2', max_length=255) - request3 = models.CharField(default='request3', max_length=255) - request4 = models.CharField(default='request4', max_length=255) + request1 = models.CharField(default="request1", max_length=255) + request2 = models.CharField(default="request2", max_length=255) + request3 = models.CharField(default="request3", max_length=255) + request4 = models.CharField(default="request4", max_length=255) class Base(models.Model): diff --git a/tests/defer_regress/tests.py b/tests/defer_regress/tests.py index 300524a151..db2c360c6e 100644 --- a/tests/defer_regress/tests.py +++ b/tests/defer_regress/tests.py @@ -8,9 +8,22 @@ from django.test import TestCase, ignore_warnings, override_settings from django.utils.deprecation import RemovedInDjango50Warning from .models import ( - Base, Child, Derived, Feature, Item, ItemAndSimpleItem, Leaf, Location, - OneToOneItem, Proxy, ProxyRelated, RelatedItem, Request, ResolveThis, - SimpleItem, SpecialFeature, + Base, + Child, + Derived, + Feature, + Item, + ItemAndSimpleItem, + Leaf, + Location, + OneToOneItem, + Proxy, + ProxyRelated, + RelatedItem, + Request, + ResolveThis, + SimpleItem, + SpecialFeature, ) @@ -58,10 +71,11 @@ class DeferRegressionTest(TestCase): self.assertEqual(obj.child.name, "c1") self.assertQuerysetEqual( - Leaf.objects.select_related().only("child__name", "second_child__name"), [ + Leaf.objects.select_related().only("child__name", "second_child__name"), + [ "l1", ], - attrgetter("name") + attrgetter("name"), ) # Models instances with deferred fields should still return the same @@ -86,18 +100,20 @@ class DeferRegressionTest(TestCase): # Regression for #16409 - make sure defer() and only() work with annotate() self.assertIsInstance( - list(SimpleItem.objects.annotate(Count('feature')).defer('name')), - list) + list(SimpleItem.objects.annotate(Count("feature")).defer("name")), list + ) self.assertIsInstance( - list(SimpleItem.objects.annotate(Count('feature')).only('name')), - list) + list(SimpleItem.objects.annotate(Count("feature")).only("name")), list + ) @ignore_warnings(category=RemovedInDjango50Warning) - @override_settings(SESSION_SERIALIZER='django.contrib.sessions.serializers.PickleSerializer') + @override_settings( + SESSION_SERIALIZER="django.contrib.sessions.serializers.PickleSerializer" + ) def test_ticket_12163(self): # Test for #12163 - Pickling error saving session with unsaved model # instances. - SESSION_KEY = '2b1189a188b44ad18c35e1baac6ceead' + SESSION_KEY = "2b1189a188b44ad18c35e1baac6ceead" item = Item() item._deferred = False @@ -116,11 +132,11 @@ class DeferRegressionTest(TestCase): def test_ticket_16409(self): # Regression for #16409 - make sure defer() and only() work with annotate() self.assertIsInstance( - list(SimpleItem.objects.annotate(Count('feature')).defer('name')), - list) + list(SimpleItem.objects.annotate(Count("feature")).defer("name")), list + ) self.assertIsInstance( - list(SimpleItem.objects.annotate(Count('feature')).only('name')), - list) + list(SimpleItem.objects.annotate(Count("feature")).only("name")), list + ) def test_ticket_23270(self): d = Derived.objects.create(text="foo", other_text="bar") @@ -135,43 +151,52 @@ class DeferRegressionTest(TestCase): # Regression for #15790 - only() broken for proxy models proxy = Proxy.objects.create(name="proxy", value=42) - msg = 'QuerySet.only() return bogus results with proxy models' - dp = Proxy.objects.only('other_value').get(pk=proxy.pk) + msg = "QuerySet.only() return bogus results with proxy models" + dp = Proxy.objects.only("other_value").get(pk=proxy.pk) self.assertEqual(dp.name, proxy.name, msg=msg) self.assertEqual(dp.value, proxy.value, msg=msg) # also test things with .defer() - msg = 'QuerySet.defer() return bogus results with proxy models' - dp = Proxy.objects.defer('name', 'text', 'value').get(pk=proxy.pk) + msg = "QuerySet.defer() return bogus results with proxy models" + dp = Proxy.objects.defer("name", "text", "value").get(pk=proxy.pk) self.assertEqual(dp.name, proxy.name, msg=msg) self.assertEqual(dp.value, proxy.value, msg=msg) def test_resolve_columns(self): - ResolveThis.objects.create(num=5.0, name='Foobar') - qs = ResolveThis.objects.defer('num') + ResolveThis.objects.create(num=5.0, name="Foobar") + qs = ResolveThis.objects.defer("num") self.assertEqual(1, qs.count()) - self.assertEqual('Foobar', qs[0].name) + self.assertEqual("Foobar", qs[0].name) def test_reverse_one_to_one_relations(self): # Refs #14694. Test reverse relations which are known unique (reverse # side has o2ofield or unique FK) - the o2o case item = Item.objects.create(name="first", value=42) o2o = OneToOneItem.objects.create(item=item, name="second") - self.assertEqual(len(Item.objects.defer('one_to_one_item__name')), 1) - self.assertEqual(len(Item.objects.select_related('one_to_one_item')), 1) - self.assertEqual(len(Item.objects.select_related( - 'one_to_one_item').defer('one_to_one_item__name')), 1) - self.assertEqual(len(Item.objects.select_related('one_to_one_item').defer('value')), 1) + self.assertEqual(len(Item.objects.defer("one_to_one_item__name")), 1) + self.assertEqual(len(Item.objects.select_related("one_to_one_item")), 1) + self.assertEqual( + len( + Item.objects.select_related("one_to_one_item").defer( + "one_to_one_item__name" + ) + ), + 1, + ) + self.assertEqual( + len(Item.objects.select_related("one_to_one_item").defer("value")), 1 + ) # Make sure that `only()` doesn't break when we pass in a unique relation, # rather than a field on the relation. - self.assertEqual(len(Item.objects.only('one_to_one_item')), 1) + self.assertEqual(len(Item.objects.only("one_to_one_item")), 1) with self.assertNumQueries(1): - i = Item.objects.select_related('one_to_one_item')[0] + i = Item.objects.select_related("one_to_one_item")[0] self.assertEqual(i.one_to_one_item.pk, o2o.pk) self.assertEqual(i.one_to_one_item.name, "second") with self.assertNumQueries(1): - i = Item.objects.select_related('one_to_one_item').defer( - 'value', 'one_to_one_item__name')[0] + i = Item.objects.select_related("one_to_one_item").defer( + "value", "one_to_one_item__name" + )[0] self.assertEqual(i.one_to_one_item.pk, o2o.pk) self.assertEqual(i.name, "first") with self.assertNumQueries(1): @@ -185,14 +210,14 @@ class DeferRegressionTest(TestCase): simple = SimpleItem.objects.create(name="simple", value="23") ItemAndSimpleItem.objects.create(item=item1, simple=simple) - obj = ItemAndSimpleItem.objects.defer('item').select_related('simple').get() + obj = ItemAndSimpleItem.objects.defer("item").select_related("simple").get() self.assertEqual(obj.item, item1) self.assertEqual(obj.item_id, item1.id) obj.item = item2 obj.save() - obj = ItemAndSimpleItem.objects.defer('item').select_related('simple').get() + obj = ItemAndSimpleItem.objects.defer("item").select_related("simple").get() self.assertEqual(obj.item, item2) self.assertEqual(obj.item_id, item2.id) @@ -201,7 +226,7 @@ class DeferRegressionTest(TestCase): item = Item.objects.create(name="first", value=47) RelatedItem.objects.create(item=item) # Defer fields with only() - obj = ProxyRelated.objects.all().select_related().only('item__name')[0] + obj = ProxyRelated.objects.all().select_related().only("item__name")[0] with self.assertNumQueries(0): self.assertEqual(obj.item.name, "first") with self.assertNumQueries(1): @@ -209,14 +234,16 @@ class DeferRegressionTest(TestCase): def test_only_with_select_related(self): # Test for #17485. - item = SimpleItem.objects.create(name='first', value=47) + item = SimpleItem.objects.create(name="first", value=47) feature = Feature.objects.create(item=item) SpecialFeature.objects.create(feature=feature) - qs = Feature.objects.only('item__name').select_related('item') + qs = Feature.objects.only("item__name").select_related("item") self.assertEqual(len(qs), 1) - qs = SpecialFeature.objects.only('feature__item__name').select_related('feature__item') + qs = SpecialFeature.objects.only("feature__item__name").select_related( + "feature__item" + ) self.assertEqual(len(qs), 1) @@ -225,19 +252,28 @@ class DeferAnnotateSelectRelatedTest(TestCase): location = Location.objects.create() Request.objects.create(location=location) self.assertIsInstance( - list(Request.objects.annotate(Count('items')).select_related('profile', 'location') - .only('profile', 'location')), - list + list( + Request.objects.annotate(Count("items")) + .select_related("profile", "location") + .only("profile", "location") + ), + list, ) self.assertIsInstance( - list(Request.objects.annotate(Count('items')).select_related('profile', 'location') - .only('profile__profile1', 'location__location1')), - list + list( + Request.objects.annotate(Count("items")) + .select_related("profile", "location") + .only("profile__profile1", "location__location1") + ), + list, ) self.assertIsInstance( - list(Request.objects.annotate(Count('items')).select_related('profile', 'location') - .defer('request1', 'request2', 'request3', 'request4')), - list + list( + Request.objects.annotate(Count("items")) + .select_related("profile", "location") + .defer("request1", "request2", "request3", "request4") + ), + list, ) @@ -267,11 +303,11 @@ class DeferDeletionSignalsTests(TestCase): self.post_delete_senders.append(sender) def test_delete_defered_model(self): - Item.objects.only('value').get(pk=self.item_pk).delete() + Item.objects.only("value").get(pk=self.item_pk).delete() self.assertEqual(self.pre_delete_senders, [Item]) self.assertEqual(self.post_delete_senders, [Item]) def test_delete_defered_proxy_model(self): - Proxy.objects.only('value').get(pk=self.item_pk).delete() + Proxy.objects.only("value").get(pk=self.item_pk).delete() self.assertEqual(self.pre_delete_senders, [Proxy]) self.assertEqual(self.post_delete_senders, [Proxy]) |
