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/nested_foreign_keys | |
parent | f68fa8b45dfac545cfc4111d4e52804c86db68d3 (diff) | |
download | django-9c19aff7c7561e3a82978a272ecdaad40dda5c00.tar.gz |
Refs #33476 -- Reformatted code with Black.
Diffstat (limited to 'tests/nested_foreign_keys')
-rw-r--r-- | tests/nested_foreign_keys/tests.py | 248 |
1 files changed, 190 insertions, 58 deletions
diff --git a/tests/nested_foreign_keys/tests.py b/tests/nested_foreign_keys/tests.py index 08a19504e4..840d5f21fa 100644 --- a/tests/nested_foreign_keys/tests.py +++ b/tests/nested_foreign_keys/tests.py @@ -1,7 +1,13 @@ from django.test import TestCase from .models import ( - Event, Movie, Package, PackageNullFK, Person, Screening, ScreeningNullFK, + Event, + Movie, + Package, + PackageNullFK, + Person, + Screening, + ScreeningNullFK, ) @@ -27,8 +33,10 @@ from .models import ( class NestedForeignKeysTests(TestCase): @classmethod def setUpTestData(cls): - cls.director = Person.objects.create(name='Terry Gilliam / Terry Jones') - cls.movie = Movie.objects.create(title='Monty Python and the Holy Grail', director=cls.director) + cls.director = Person.objects.create(name="Terry Gilliam / Terry Jones") + cls.movie = Movie.objects.create( + title="Monty Python and the Holy Grail", director=cls.director + ) # This test failed in #16715 because in some cases INNER JOIN was selected # for the second foreign key relation instead of LEFT OUTER JOIN. @@ -37,16 +45,21 @@ class NestedForeignKeysTests(TestCase): Screening.objects.create(movie=self.movie) self.assertEqual(len(Event.objects.all()), 2) - self.assertEqual(len(Event.objects.select_related('screening')), 2) + self.assertEqual(len(Event.objects.select_related("screening")), 2) # This failed. - self.assertEqual(len(Event.objects.select_related('screening__movie')), 2) + self.assertEqual(len(Event.objects.select_related("screening__movie")), 2) self.assertEqual(len(Event.objects.values()), 2) - self.assertEqual(len(Event.objects.values('screening__pk')), 2) - self.assertEqual(len(Event.objects.values('screening__movie__pk')), 2) - self.assertEqual(len(Event.objects.values('screening__movie__title')), 2) + self.assertEqual(len(Event.objects.values("screening__pk")), 2) + self.assertEqual(len(Event.objects.values("screening__movie__pk")), 2) + self.assertEqual(len(Event.objects.values("screening__movie__title")), 2) # This failed. - self.assertEqual(len(Event.objects.values('screening__movie__pk', 'screening__movie__title')), 2) + self.assertEqual( + len( + Event.objects.values("screening__movie__pk", "screening__movie__title") + ), + 2, + ) # Simple filter/exclude queries for good measure. self.assertEqual(Event.objects.filter(screening__movie=self.movie).count(), 1) @@ -59,24 +72,35 @@ class NestedForeignKeysTests(TestCase): ScreeningNullFK.objects.create(movie=self.movie) self.assertEqual(len(Event.objects.all()), 3) - self.assertEqual(len(Event.objects.select_related('screeningnullfk')), 3) - self.assertEqual(len(Event.objects.select_related('screeningnullfk__movie')), 3) + self.assertEqual(len(Event.objects.select_related("screeningnullfk")), 3) + self.assertEqual(len(Event.objects.select_related("screeningnullfk__movie")), 3) self.assertEqual(len(Event.objects.values()), 3) - self.assertEqual(len(Event.objects.values('screeningnullfk__pk')), 3) - self.assertEqual(len(Event.objects.values('screeningnullfk__movie__pk')), 3) - self.assertEqual(len(Event.objects.values('screeningnullfk__movie__title')), 3) - self.assertEqual(len(Event.objects.values('screeningnullfk__movie__pk', 'screeningnullfk__movie__title')), 3) + self.assertEqual(len(Event.objects.values("screeningnullfk__pk")), 3) + self.assertEqual(len(Event.objects.values("screeningnullfk__movie__pk")), 3) + self.assertEqual(len(Event.objects.values("screeningnullfk__movie__title")), 3) + self.assertEqual( + len( + Event.objects.values( + "screeningnullfk__movie__pk", "screeningnullfk__movie__title" + ) + ), + 3, + ) - self.assertEqual(Event.objects.filter(screeningnullfk__movie=self.movie).count(), 1) - self.assertEqual(Event.objects.exclude(screeningnullfk__movie=self.movie).count(), 2) + self.assertEqual( + Event.objects.filter(screeningnullfk__movie=self.movie).count(), 1 + ) + self.assertEqual( + Event.objects.exclude(screeningnullfk__movie=self.movie).count(), 2 + ) def test_null_exclude(self): screening = ScreeningNullFK.objects.create(movie=None) ScreeningNullFK.objects.create(movie=self.movie) self.assertEqual( - list(ScreeningNullFK.objects.exclude(movie__id=self.movie.pk)), - [screening]) + list(ScreeningNullFK.objects.exclude(movie__id=self.movie.pk)), [screening] + ) # This test failed in #16715 because in some cases INNER JOIN was selected # for the second foreign key relation instead of LEFT OUTER JOIN. @@ -86,18 +110,27 @@ class NestedForeignKeysTests(TestCase): Package.objects.create(screening=screening) self.assertEqual(len(Package.objects.all()), 2) - self.assertEqual(len(Package.objects.select_related('screening')), 2) - self.assertEqual(len(Package.objects.select_related('screening__movie')), 2) + self.assertEqual(len(Package.objects.select_related("screening")), 2) + self.assertEqual(len(Package.objects.select_related("screening__movie")), 2) self.assertEqual(len(Package.objects.values()), 2) - self.assertEqual(len(Package.objects.values('screening__pk')), 2) - self.assertEqual(len(Package.objects.values('screening__movie__pk')), 2) - self.assertEqual(len(Package.objects.values('screening__movie__title')), 2) + self.assertEqual(len(Package.objects.values("screening__pk")), 2) + self.assertEqual(len(Package.objects.values("screening__movie__pk")), 2) + self.assertEqual(len(Package.objects.values("screening__movie__title")), 2) # This failed. - self.assertEqual(len(Package.objects.values('screening__movie__pk', 'screening__movie__title')), 2) + self.assertEqual( + len( + Package.objects.values( + "screening__movie__pk", "screening__movie__title" + ) + ), + 2, + ) self.assertEqual(Package.objects.filter(screening__movie=self.movie).count(), 1) - self.assertEqual(Package.objects.exclude(screening__movie=self.movie).count(), 1) + self.assertEqual( + Package.objects.exclude(screening__movie=self.movie).count(), 1 + ) # These all work because the second foreign key in the chain has null=True. def test_explicit_ForeignKey_NullFK(self): @@ -108,17 +141,32 @@ class NestedForeignKeysTests(TestCase): PackageNullFK.objects.create(screening=screening_with_movie) self.assertEqual(len(PackageNullFK.objects.all()), 3) - self.assertEqual(len(PackageNullFK.objects.select_related('screening')), 3) - self.assertEqual(len(PackageNullFK.objects.select_related('screening__movie')), 3) + self.assertEqual(len(PackageNullFK.objects.select_related("screening")), 3) + self.assertEqual( + len(PackageNullFK.objects.select_related("screening__movie")), 3 + ) self.assertEqual(len(PackageNullFK.objects.values()), 3) - self.assertEqual(len(PackageNullFK.objects.values('screening__pk')), 3) - self.assertEqual(len(PackageNullFK.objects.values('screening__movie__pk')), 3) - self.assertEqual(len(PackageNullFK.objects.values('screening__movie__title')), 3) - self.assertEqual(len(PackageNullFK.objects.values('screening__movie__pk', 'screening__movie__title')), 3) + self.assertEqual(len(PackageNullFK.objects.values("screening__pk")), 3) + self.assertEqual(len(PackageNullFK.objects.values("screening__movie__pk")), 3) + self.assertEqual( + len(PackageNullFK.objects.values("screening__movie__title")), 3 + ) + self.assertEqual( + len( + PackageNullFK.objects.values( + "screening__movie__pk", "screening__movie__title" + ) + ), + 3, + ) - self.assertEqual(PackageNullFK.objects.filter(screening__movie=self.movie).count(), 1) - self.assertEqual(PackageNullFK.objects.exclude(screening__movie=self.movie).count(), 2) + self.assertEqual( + PackageNullFK.objects.filter(screening__movie=self.movie).count(), 1 + ) + self.assertEqual( + PackageNullFK.objects.exclude(screening__movie=self.movie).count(), 2 + ) # Some additional tests for #16715. The only difference is the depth of the @@ -127,30 +175,72 @@ class NestedForeignKeysTests(TestCase): class DeeplyNestedForeignKeysTests(TestCase): @classmethod def setUpTestData(cls): - cls.director = Person.objects.create(name='Terry Gilliam / Terry Jones') - cls.movie = Movie.objects.create(title='Monty Python and the Holy Grail', director=cls.director) + cls.director = Person.objects.create(name="Terry Gilliam / Terry Jones") + cls.movie = Movie.objects.create( + title="Monty Python and the Holy Grail", director=cls.director + ) def test_inheritance(self): Event.objects.create() Screening.objects.create(movie=self.movie) self.assertEqual(len(Event.objects.all()), 2) - self.assertEqual(len(Event.objects.select_related('screening__movie__director')), 2) + self.assertEqual( + len(Event.objects.select_related("screening__movie__director")), 2 + ) self.assertEqual(len(Event.objects.values()), 2) - self.assertEqual(len(Event.objects.values('screening__movie__director__pk')), 2) - self.assertEqual(len(Event.objects.values('screening__movie__director__name')), 2) + self.assertEqual(len(Event.objects.values("screening__movie__director__pk")), 2) self.assertEqual( - len(Event.objects.values('screening__movie__director__pk', 'screening__movie__director__name')), - 2 + len(Event.objects.values("screening__movie__director__name")), 2 + ) + self.assertEqual( + len( + Event.objects.values( + "screening__movie__director__pk", "screening__movie__director__name" + ) + ), + 2, + ) + self.assertEqual( + len( + Event.objects.values( + "screening__movie__pk", "screening__movie__director__pk" + ) + ), + 2, + ) + self.assertEqual( + len( + Event.objects.values( + "screening__movie__pk", "screening__movie__director__name" + ) + ), + 2, + ) + self.assertEqual( + len( + Event.objects.values( + "screening__movie__title", "screening__movie__director__pk" + ) + ), + 2, + ) + self.assertEqual( + len( + Event.objects.values( + "screening__movie__title", "screening__movie__director__name" + ) + ), + 2, ) - self.assertEqual(len(Event.objects.values('screening__movie__pk', 'screening__movie__director__pk')), 2) - self.assertEqual(len(Event.objects.values('screening__movie__pk', 'screening__movie__director__name')), 2) - self.assertEqual(len(Event.objects.values('screening__movie__title', 'screening__movie__director__pk')), 2) - self.assertEqual(len(Event.objects.values('screening__movie__title', 'screening__movie__director__name')), 2) - self.assertEqual(Event.objects.filter(screening__movie__director=self.director).count(), 1) - self.assertEqual(Event.objects.exclude(screening__movie__director=self.director).count(), 1) + self.assertEqual( + Event.objects.filter(screening__movie__director=self.director).count(), 1 + ) + self.assertEqual( + Event.objects.exclude(screening__movie__director=self.director).count(), 1 + ) def test_explicit_ForeignKey(self): Package.objects.create() @@ -158,19 +248,61 @@ class DeeplyNestedForeignKeysTests(TestCase): Package.objects.create(screening=screening) self.assertEqual(len(Package.objects.all()), 2) - self.assertEqual(len(Package.objects.select_related('screening__movie__director')), 2) + self.assertEqual( + len(Package.objects.select_related("screening__movie__director")), 2 + ) self.assertEqual(len(Package.objects.values()), 2) - self.assertEqual(len(Package.objects.values('screening__movie__director__pk')), 2) - self.assertEqual(len(Package.objects.values('screening__movie__director__name')), 2) self.assertEqual( - len(Package.objects.values('screening__movie__director__pk', 'screening__movie__director__name')), - 2 + len(Package.objects.values("screening__movie__director__pk")), 2 + ) + self.assertEqual( + len(Package.objects.values("screening__movie__director__name")), 2 + ) + self.assertEqual( + len( + Package.objects.values( + "screening__movie__director__pk", "screening__movie__director__name" + ) + ), + 2, + ) + self.assertEqual( + len( + Package.objects.values( + "screening__movie__pk", "screening__movie__director__pk" + ) + ), + 2, + ) + self.assertEqual( + len( + Package.objects.values( + "screening__movie__pk", "screening__movie__director__name" + ) + ), + 2, + ) + self.assertEqual( + len( + Package.objects.values( + "screening__movie__title", "screening__movie__director__pk" + ) + ), + 2, + ) + self.assertEqual( + len( + Package.objects.values( + "screening__movie__title", "screening__movie__director__name" + ) + ), + 2, ) - self.assertEqual(len(Package.objects.values('screening__movie__pk', 'screening__movie__director__pk')), 2) - self.assertEqual(len(Package.objects.values('screening__movie__pk', 'screening__movie__director__name')), 2) - self.assertEqual(len(Package.objects.values('screening__movie__title', 'screening__movie__director__pk')), 2) - self.assertEqual(len(Package.objects.values('screening__movie__title', 'screening__movie__director__name')), 2) - self.assertEqual(Package.objects.filter(screening__movie__director=self.director).count(), 1) - self.assertEqual(Package.objects.exclude(screening__movie__director=self.director).count(), 1) + self.assertEqual( + Package.objects.filter(screening__movie__director=self.director).count(), 1 + ) + self.assertEqual( + Package.objects.exclude(screening__movie__director=self.director).count(), 1 + ) |