diff options
Diffstat (limited to 'tests/regressiontests/model_inheritance_regress/models.py')
| -rw-r--r-- | tests/regressiontests/model_inheritance_regress/models.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/regressiontests/model_inheritance_regress/models.py b/tests/regressiontests/model_inheritance_regress/models.py index b78b493e15..716c7f5ad8 100644 --- a/tests/regressiontests/model_inheritance_regress/models.py +++ b/tests/regressiontests/model_inheritance_regress/models.py @@ -43,12 +43,22 @@ class ParkingLot(Place): def __unicode__(self): return u"%s the parking lot" % self.name +class Supplier(models.Model): + restaurant = models.ForeignKey(Restaurant) + class Parent(models.Model): created = models.DateTimeField(default=datetime.datetime.now) class Child(Parent): name = models.CharField(max_length=10) +class SelfRefParent(models.Model): + parent_data = models.IntegerField() + self_data = models.ForeignKey('self', null=True) + +class SelfRefChild(SelfRefParent): + child_data = models.IntegerField() + __test__ = {'API_TESTS':""" # Regression for #7350, #7202 # Check that when you create a Parent object with a specific reference to an @@ -159,4 +169,29 @@ Traceback (most recent call last): ... DoesNotExist: ItalianRestaurant matching query does not exist. +# Regression test for #6755 +>>> r = Restaurant(serves_pizza=False) +>>> r.save() +>>> r.id == r.place_ptr_id +True +>>> orig_id = r.id +>>> r = Restaurant(place_ptr_id=orig_id, serves_pizza=True) +>>> r.save() +>>> r.id == orig_id +True +>>> r.id == r.place_ptr_id +True + +# Regression test for #7488. This looks a little crazy, but it's the equivalent +# of what the admin interface has to do for the edit-inline case. +>>> Supplier.objects.filter(restaurant=Restaurant(name='xx', address='yy')) +[] + +# Regression test for #7853 +# If the parent class has a self-referential link, make sure that any updates +# to that link via the child update the right table. + +>>> obj = SelfRefChild.objects.create(child_data=37, parent_data=42) +>>> obj.delete() + """} |
