mirror of
https://github.com/django/django.git
synced 2025-10-31 09:41:08 +00:00
Refs #33476 -- Reformatted code with Black.
This commit is contained in:
committed by
Mariusz Felisiak
parent
f68fa8b45d
commit
9c19aff7c7
@@ -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):
|
||||
|
||||
@@ -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])
|
||||
|
||||
Reference in New Issue
Block a user