From 3412860f89a1f72257037c19c06beebc92dd7e06 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Mon, 27 Jul 2009 14:32:30 +0000 Subject: Fixed #11428 -- Ensured that SQL generating commands and dumpdata don't include proxy models in their output. Thanks to Anssi Kaariainen for the report. git-svn-id: http://code.djangoproject.com/svn/django/trunk@11343 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- tests/regressiontests/fixtures_regress/models.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/regressiontests/fixtures_regress/models.py b/tests/regressiontests/fixtures_regress/models.py index 16a9fc4fc5..e33471646c 100644 --- a/tests/regressiontests/fixtures_regress/models.py +++ b/tests/regressiontests/fixtures_regress/models.py @@ -54,7 +54,7 @@ class Parent(models.Model): class Child(Parent): data = models.CharField(max_length=10) -# Models to regresison check #7572 +# Models to regression test #7572 class Channel(models.Model): name = models.CharField(max_length=255) @@ -65,6 +65,14 @@ class Article(models.Model): class Meta: ordering = ('id',) +# Models to regression test #11428 +class Widget(models.Model): + name = models.CharField(max_length=255) + +class WidgetProxy(Widget): + class Meta: + proxy = True + __test__ = {'API_TESTS':""" >>> from django.core import management @@ -170,4 +178,18 @@ Weight = 1.2 () >>> management.call_command('dumpdata', 'fixtures_regress.animal', format='json') [{"pk": 1, "model": "fixtures_regress.animal", "fields": {"count": 3, "weight": 1.2, "name": "Lion", "latin_name": "Panthera leo"}}, {"pk": 2, "model": "fixtures_regress.animal", "fields": {"count": 2, "weight": 2.29..., "name": "Platypus", "latin_name": "Ornithorhynchus anatinus"}}, {"pk": 10, "model": "fixtures_regress.animal", "fields": {"count": 42, "weight": 1.2, "name": "Emu", "latin_name": "Dromaius novaehollandiae"}}] +############################################### +# Regression for #11428 - Proxy models aren't included +# when you run dumpdata over an entire app + +# Flush out the database first +>>> management.call_command('reset', 'fixtures_regress', interactive=False, verbosity=0) + +# Create an instance of the concrete class +>>> Widget(name='grommet').save() + +# Dump data for the entire app. The proxy class shouldn't be included +>>> management.call_command('dumpdata', 'fixtures_regress', format='json') +[{"pk": 1, "model": "fixtures_regress.widget", "fields": {"name": "grommet"}}] + """} -- cgit v1.3