diff --git a/tests/one_to_one_regress/tests.py b/tests/one_to_one_regress/tests.py index 0e20f19acb56b..55836d47e2306 100644 --- a/tests/one_to_one_regress/tests.py +++ b/tests/one_to_one_regress/tests.py @@ -25,7 +25,7 @@ def test_reverse_relationship_cache_cascade(self): # The bug in #9023: if you access the one-to-one relation *before* # setting to None and deleting, the cascade happens anyway. self.p1.undergroundbar - bar.place.name='foo' + bar.place.name = 'foo' bar.place = None bar.save() self.p1.delete() @@ -40,12 +40,12 @@ def test_create_models_m2m(self): Check that we create models via the m2m relation if the remote model has a OneToOneField. """ - f = Favorites(name = 'Fred') + f = Favorites(name='Fred') f.save() f.restaurants = [self.r1] self.assertQuerysetEqual( - f.restaurants.all(), - [''] + f.restaurants.all(), + [''] ) def test_reverse_object_cache(self): @@ -114,23 +114,23 @@ def test_filter_one_to_one_relations(self): misbehaving. We test both (primary_key=True & False) cases here to prevent any reappearance of the problem. """ - t = Target.objects.create() + Target.objects.create() self.assertQuerysetEqual( - Target.objects.filter(pointer=None), - [''] + Target.objects.filter(pointer=None), + [''] ) self.assertQuerysetEqual( - Target.objects.exclude(pointer=None), - [] + Target.objects.exclude(pointer=None), + [] ) self.assertQuerysetEqual( - Target.objects.filter(pointer2=None), - [''] + Target.objects.filter(pointer2=None), + [''] ) self.assertQuerysetEqual( - Target.objects.exclude(pointer2=None), - [] + Target.objects.exclude(pointer2=None), + [] ) def test_reverse_object_does_not_exist_cache(self): @@ -235,3 +235,11 @@ def test_set_reverse_on_unsaved_object(self): b = UndergroundBar.objects.create() with self.assertNumQueries(0), self.assertRaises(ValueError): p.undergroundbar = b + + def test_nullable_o2o_delete(self): + u = UndergroundBar.objects.create(place=self.p1) + u.place_id = None + u.save() + self.p1.delete() + self.assertTrue(UndergroundBar.objects.filter(pk=u.pk).exists()) + self.assertIsNone(UndergroundBar.objects.get(pk=u.pk).place)