From 5ec1f0e1501e09899b1fc39088bf69d8e40d0c1b Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Mon, 27 Sep 2010 15:11:29 +0000 Subject: [PATCH] Migrated admin_ordering doctests. Thanks to Sebastian Hillig. git-svn-id: http://code.djangoproject.com/svn/django/trunk@13881 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- .../regressiontests/admin_ordering/models.py | 36 ----------------- tests/regressiontests/admin_ordering/tests.py | 39 +++++++++++++++++++ 2 files changed, 39 insertions(+), 36 deletions(-) create mode 100644 tests/regressiontests/admin_ordering/tests.py diff --git a/tests/regressiontests/admin_ordering/models.py b/tests/regressiontests/admin_ordering/models.py index 601f06bb0ae..ad63685b2f3 100644 --- a/tests/regressiontests/admin_ordering/models.py +++ b/tests/regressiontests/admin_ordering/models.py @@ -8,39 +8,3 @@ class Band(models.Model): class Meta: ordering = ('name',) - -__test__ = {'API_TESTS': """ - -Let's make sure that ModelAdmin.queryset uses the ordering we define in -ModelAdmin rather that ordering defined in the model's inner Meta -class. - ->>> from django.contrib.admin.options import ModelAdmin - ->>> b1 = Band(name='Aerosmith', bio='', rank=3) ->>> b1.save() ->>> b2 = Band(name='Radiohead', bio='', rank=1) ->>> b2.save() ->>> b3 = Band(name='Van Halen', bio='', rank=2) ->>> b3.save() - -The default ordering should be by name, as specified in the inner Meta class. - ->>> ma = ModelAdmin(Band, None) ->>> [b.name for b in ma.queryset(None)] -[u'Aerosmith', u'Radiohead', u'Van Halen'] - - -Let's use a custom ModelAdmin that changes the ordering, and make sure it -actually changes. - ->>> class BandAdmin(ModelAdmin): -... ordering = ('rank',) # default ordering is ('name',) -... - ->>> ma = BandAdmin(Band, None) ->>> [b.name for b in ma.queryset(None)] -[u'Radiohead', u'Van Halen', u'Aerosmith'] - -""" -} diff --git a/tests/regressiontests/admin_ordering/tests.py b/tests/regressiontests/admin_ordering/tests.py new file mode 100644 index 00000000000..f63f202ce16 --- /dev/null +++ b/tests/regressiontests/admin_ordering/tests.py @@ -0,0 +1,39 @@ +from django.test import TestCase +from django.contrib.admin.options import ModelAdmin + +from models import Band + +class TestAdminOrdering(TestCase): + """ + Let's make sure that ModelAdmin.queryset uses the ordering we define in + ModelAdmin rather that ordering defined in the model's inner Meta + class. + """ + + def setUp(self): + b1 = Band(name='Aerosmith', bio='', rank=3) + b1.save() + b2 = Band(name='Radiohead', bio='', rank=1) + b2.save() + b3 = Band(name='Van Halen', bio='', rank=2) + b3.save() + + def test_default_ordering(self): + """ + The default ordering should be by name, as specified in the inner Meta + class. + """ + ma = ModelAdmin(Band, None) + names = [b.name for b in ma.queryset(None)] + self.assertEqual([u'Aerosmith', u'Radiohead', u'Van Halen'], names) + + def test_specified_ordering(self): + """ + Let's use a custom ModelAdmin that changes the ordering, and make sure + it actually changes. + """ + class BandAdmin(ModelAdmin): + ordering = ('rank',) # default ordering is ('name',) + ma = BandAdmin(Band, None) + names = [b.name for b in ma.queryset(None)] + self.assertEqual([u'Radiohead', u'Van Halen', u'Aerosmith'], names)