diff options
Diffstat (limited to 'tests/null_fk_ordering')
| -rw-r--r-- | tests/null_fk_ordering/models.py | 4 | ||||
| -rw-r--r-- | tests/null_fk_ordering/tests.py | 35 |
2 files changed, 21 insertions, 18 deletions
diff --git a/tests/null_fk_ordering/models.py b/tests/null_fk_ordering/models.py index f42ff7b8d5..adfdbf3bea 100644 --- a/tests/null_fk_ordering/models.py +++ b/tests/null_fk_ordering/models.py @@ -18,7 +18,7 @@ class Article(models.Model): author = models.ForeignKey(Author, models.SET_NULL, null=True) class Meta: - ordering = ['author__name'] + ordering = ["author__name"] # These following 4 models represent a far more complex ordering case. @@ -41,4 +41,4 @@ class Comment(models.Model): comment_text = models.CharField(max_length=250) class Meta: - ordering = ['post__forum__system_info__system_name', 'comment_text'] + ordering = ["post__forum__system_info__system_name", "comment_text"] diff --git a/tests/null_fk_ordering/tests.py b/tests/null_fk_ordering/tests.py index ac3f0f8373..506c8b4086 100644 --- a/tests/null_fk_ordering/tests.py +++ b/tests/null_fk_ordering/tests.py @@ -4,34 +4,37 @@ from .models import Article, Author, Comment, Forum, Post, SystemInfo class NullFkOrderingTests(TestCase): - def test_ordering_across_null_fk(self): """ Regression test for #7512 ordering across nullable Foreign Keys shouldn't exclude results """ - author_1 = Author.objects.create(name='Tom Jones') - author_2 = Author.objects.create(name='Bob Smith') - Article.objects.create(title='No author on this article') - Article.objects.create(author=author_1, title='This article written by Tom Jones') - Article.objects.create(author=author_2, title='This article written by Bob Smith') + author_1 = Author.objects.create(name="Tom Jones") + author_2 = Author.objects.create(name="Bob Smith") + Article.objects.create(title="No author on this article") + Article.objects.create( + author=author_1, title="This article written by Tom Jones" + ) + Article.objects.create( + author=author_2, title="This article written by Bob Smith" + ) # We can't compare results directly (since different databases sort NULLs to # different ends of the ordering), but we can check that all results are # returned. self.assertEqual(len(list(Article.objects.all())), 3) - s = SystemInfo.objects.create(system_name='System Info') - f = Forum.objects.create(system_info=s, forum_name='First forum') - p = Post.objects.create(forum=f, title='First Post') - Comment.objects.create(post=p, comment_text='My first comment') - Comment.objects.create(comment_text='My second comment') - s2 = SystemInfo.objects.create(system_name='More System Info') - f2 = Forum.objects.create(system_info=s2, forum_name='Second forum') - p2 = Post.objects.create(forum=f2, title='Second Post') - Comment.objects.create(comment_text='Another first comment') - Comment.objects.create(post=p2, comment_text='Another second comment') + s = SystemInfo.objects.create(system_name="System Info") + f = Forum.objects.create(system_info=s, forum_name="First forum") + p = Post.objects.create(forum=f, title="First Post") + Comment.objects.create(post=p, comment_text="My first comment") + Comment.objects.create(comment_text="My second comment") + s2 = SystemInfo.objects.create(system_name="More System Info") + f2 = Forum.objects.create(system_info=s2, forum_name="Second forum") + p2 = Post.objects.create(forum=f2, title="Second Post") + Comment.objects.create(comment_text="Another first comment") + Comment.objects.create(post=p2, comment_text="Another second comment") # We have to test this carefully. Some databases sort NULL values before # everything else, some sort them afterward. So we extract the ordered list |
