mirror of
https://github.com/django/django.git
synced 2025-08-04 10:59:45 +00:00
Fixed #9498 -- Handle a formset correctly when the foreign key is not available (for now).
This case pops up with generic foreign key inlines after [9297]. Added tests to handle future regressions with generic foreign key inlines in the admin. Thanks markus and danielr for patches. git-svn-id: http://code.djangoproject.com/svn/django/trunk@9412 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
dfa90aec1b
commit
f751d5b713
8 changed files with 140 additions and 3 deletions
66
tests/regressiontests/generic_inline_admin/tests.py
Normal file
66
tests/regressiontests/generic_inline_admin/tests.py
Normal file
|
@ -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
|
Loading…
Add table
Add a link
Reference in a new issue