123456789101112131415161718192021222324252627282930313233343536373839404142 |
- from django.test import TestCase
- from regressiontests.null_fk.models import *
- 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')
-
-
-
-
- c = Comment.objects.select_related().get(id=1)
- self.assertEqual(c.post, p)
- self.assertEqual(Comment.objects.select_related().get(id=2).post, None)
- self.assertQuerysetEqual(
- Comment.objects.select_related('post__forum__system_info').all(),
- [
- (1, u'My first comment', '<Post: First Post>'),
- (2, u'My second comment', 'None')
- ],
- transform = lambda c: (c.id, c.comment_text, repr(c.post))
- )
-
- self.assertTrue(Comment.objects.select_related('post').filter(post__isnull=True)[0].post is None)
- self.assertQuerysetEqual(
- Comment.objects.select_related('post__forum__system_info__system_details'),
- [
- (1, u'My first comment', '<Post: First Post>'),
- (2, u'My second comment', 'None')
- ],
- transform = lambda c: (c.id, c.comment_text, repr(c.post))
- )
|