From 11c47a132f0261606b8324982fb703a9d2b3963f Mon Sep 17 00:00:00 2001 From: Alexander Schepanovski Date: Sun, 3 Feb 2013 22:59:29 +0800 Subject: [PATCH] Added tests for multi-table inheritance #31 --- tests/models.py | 8 ++++++++ tests/tests.py | 20 ++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/tests/models.py b/tests/models.py index ac72ee0b..930226e2 100644 --- a/tests/models.py +++ b/tests/models.py @@ -39,3 +39,11 @@ class Video(models.Model): class VideoProxy(Video): class Meta: proxy = True + + +# Multi-table inheritance +class Media(models.Model): + name = models.CharField(max_length=128) + +class Movie(Media): + year = models.IntegerField() diff --git a/tests/tests.py b/tests/tests.py index 81c3b5de..ec8e14e3 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -109,3 +109,23 @@ def test_interchange(self): with self.assertNumQueries(0): list(VideoProxy.objects.cache()) + + +class MultitableInheritanceTests(BaseTestCase): + def test_sub_added(self): + media_count = Media.objects.cache().count() + Movie.objects.create(name="Matrix", year=1999) + + with self.assertNumQueries(1): + self.assertEqual(Media.objects.cache().count(), media_count + 1) + + def test_base_changed(self): + matrix = Movie.objects.create(name="Matrix", year=1999) + list(Movie.objects.cache()) + + media = Media.objects.get(pk=matrix.pk) + media.name = "Matrix (original)" + media.save() + + with self.assertNumQueries(1): + list(Movie.objects.cache())