diff options
Diffstat (limited to 'tests/regressiontests/generic_inline_admin/tests.py')
| -rw-r--r-- | tests/regressiontests/generic_inline_admin/tests.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/regressiontests/generic_inline_admin/tests.py b/tests/regressiontests/generic_inline_admin/tests.py new file mode 100644 index 0000000000..f2953fee54 --- /dev/null +++ b/tests/regressiontests/generic_inline_admin/tests.py @@ -0,0 +1,66 @@ +# coding: utf-8 + +from django.test import TestCase +from django.conf import settings + +# local test models +from models import Episode, Media + +class GenericAdminViewTest(TestCase): + fixtures = ['users.xml', 'model-data.xml'] + + def setUp(self): + # set TEMPLATE_DEBUG to True to ensure {% include %} will raise + # exceptions since that is how inlines are rendered and #9498 will + # bubble up if it is an issue. + self.original_template_debug = settings.TEMPLATE_DEBUG + settings.TEMPLATE_DEBUG = True + self.client.login(username='super', password='secret') + + def tearDown(self): + self.client.logout() + settings.TEMPLATE_DEBUG = self.original_template_debug + + def testBasicAddGet(self): + """ + A smoke test to ensure GET on the add_view works. + """ + response = self.client.get('/generic_inline_admin/admin/generic_inline_admin/episode/add/') + self.failUnlessEqual(response.status_code, 200) + + def testBasicEditGet(self): + """ + A smoke test to ensure GET on the change_view works. + """ + response = self.client.get('/generic_inline_admin/admin/generic_inline_admin/episode/1/') + self.failUnlessEqual(response.status_code, 200) + + def testBasicAddPost(self): + """ + A smoke test to ensure POST on add_view works. + """ + post_data = { + "name": u"This Week in Django", + # inline data + "generic_inline_admin-media-content_type-object_id-TOTAL_FORMS": u"1", + "generic_inline_admin-media-content_type-object_id-INITIAL_FORMS": u"0", + } + response = self.client.post('/generic_inline_admin/admin/generic_inline_admin/episode/add/', post_data) + self.failUnlessEqual(response.status_code, 302) # redirect somewhere + + def testBasicEditPost(self): + """ + A smoke test to ensure POST on edit_view works. + """ + post_data = { + "name": u"This Week in Django", + # inline data + "generic_inline_admin-media-content_type-object_id-TOTAL_FORMS": u"2", + "generic_inline_admin-media-content_type-object_id-INITIAL_FORMS": u"1", + "generic_inline_admin-media-content_type-object_id-0-id": u"1", + "generic_inline_admin-media-content_type-object_id-0-url": u"http://example.com/podcast.mp3", + "generic_inline_admin-media-content_type-object_id-1-id": u"", + "generic_inline_admin-media-content_type-object_id-1-url": u"", + } + response = self.client.post('/generic_inline_admin/admin/generic_inline_admin/episode/1/', post_data) + self.failUnlessEqual(response.status_code, 302) # redirect somewhere |
