diff options
Diffstat (limited to 'tests/null_fk/tests.py')
| -rw-r--r-- | tests/null_fk/tests.py | 49 |
1 files changed, 24 insertions, 25 deletions
diff --git a/tests/null_fk/tests.py b/tests/null_fk/tests.py index e587d6551b..174d5ba064 100644 --- a/tests/null_fk/tests.py +++ b/tests/null_fk/tests.py @@ -1,20 +1,17 @@ from django.db.models import Q from django.test import TestCase -from .models import ( - Comment, Forum, Item, Post, PropertyValue, SystemDetails, SystemInfo, -) +from .models import Comment, Forum, Item, Post, PropertyValue, SystemDetails, SystemInfo class NullFkTests(TestCase): - def test_null_fk(self): - d = SystemDetails.objects.create(details='First details') - s = SystemInfo.objects.create(system_name='First forum', system_details=d) - f = Forum.objects.create(system_info=s, forum_name='First forum') - p = Post.objects.create(forum=f, title='First Post') - c1 = Comment.objects.create(post=p, comment_text='My first comment') - c2 = Comment.objects.create(comment_text='My second comment') + d = SystemDetails.objects.create(details="First details") + s = SystemInfo.objects.create(system_name="First forum", system_details=d) + f = Forum.objects.create(system_info=s, forum_name="First forum") + p = Post.objects.create(forum=f, title="First Post") + c1 = Comment.objects.create(post=p, comment_text="My first comment") + c2 = Comment.objects.create(comment_text="My second comment") # Starting from comment, make sure that a .select_related(...) with a specified # set of fields will properly LEFT JOIN multiple levels of NULLs (and the things @@ -25,33 +22,35 @@ class NullFkTests(TestCase): self.assertIsNone(Comment.objects.select_related().get(id=c2.id).post) self.assertQuerysetEqual( - Comment.objects.select_related('post__forum__system_info').all(), + Comment.objects.select_related("post__forum__system_info").all(), [ - (c1.id, 'My first comment', '<Post: First Post>'), - (c2.id, 'My second comment', 'None') + (c1.id, "My first comment", "<Post: First Post>"), + (c2.id, "My second comment", "None"), ], - transform=lambda c: (c.id, c.comment_text, repr(c.post)) + transform=lambda c: (c.id, c.comment_text, repr(c.post)), ) # Regression test for #7530, #7716. - self.assertIsNone(Comment.objects.select_related('post').filter(post__isnull=True)[0].post) + self.assertIsNone( + Comment.objects.select_related("post").filter(post__isnull=True)[0].post + ) self.assertQuerysetEqual( - Comment.objects.select_related('post__forum__system_info__system_details'), + Comment.objects.select_related("post__forum__system_info__system_details"), [ - (c1.id, 'My first comment', '<Post: First Post>'), - (c2.id, 'My second comment', 'None') + (c1.id, "My first comment", "<Post: First Post>"), + (c2.id, "My second comment", "None"), ], - transform=lambda c: (c.id, c.comment_text, repr(c.post)) + transform=lambda c: (c.id, c.comment_text, repr(c.post)), ) def test_combine_isnull(self): - item = Item.objects.create(title='Some Item') - pv = PropertyValue.objects.create(label='Some Value') - item.props.create(key='a', value=pv) - item.props.create(key='b') # value=NULL - q1 = Q(props__key='a', props__value=pv) - q2 = Q(props__key='b', props__value__isnull=True) + item = Item.objects.create(title="Some Item") + pv = PropertyValue.objects.create(label="Some Value") + item.props.create(key="a", value=pv) + item.props.create(key="b") # value=NULL + q1 = Q(props__key="a", props__value=pv) + q2 = Q(props__key="b", props__value__isnull=True) # Each of these individually should return the item. self.assertEqual(Item.objects.get(q1), item) |
