23 lines
903 B
Python
23 lines
903 B
Python
|
from django.test import TestCase
|
||
|
from regressiontests.one_to_one_regress.models import Place, UndergroundBar
|
||
|
|
||
|
class OneToOneDeletionTests(TestCase):
|
||
|
def test_reverse_relationship_cache_cascade(self):
|
||
|
"""
|
||
|
Regression test for #9023: accessing the reverse relationship shouldn't
|
||
|
result in a cascading delete().
|
||
|
"""
|
||
|
place = Place.objects.create(name="Dempsey's", address="623 Vermont St")
|
||
|
bar = UndergroundBar.objects.create(place=place, serves_cocktails=False)
|
||
|
|
||
|
# The bug in #9023: if you access the one-to-one relation *before*
|
||
|
# setting to None and deleting, the cascade happens anyway.
|
||
|
place.undergroundbar
|
||
|
bar.place.name='foo'
|
||
|
bar.place = None
|
||
|
bar.save()
|
||
|
place.delete()
|
||
|
|
||
|
self.assertEqual(Place.objects.all().count(), 0)
|
||
|
self.assertEqual(UndergroundBar.objects.all().count(), 1)
|