Skip to content

Commit

Permalink
[1.0.X] Fixed the tests from [9438] to work consistantly across datab…
Browse files Browse the repository at this point in the history
…ases. In particular, it was failing on newer versions of PostgreSQL after [10586]. Backport of [10626] from trunk.

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.0.X@10627 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
jacobian committed Apr 22, 2009
1 parent c39b59e commit 2ceee52
Showing 1 changed file with 20 additions and 19 deletions.
39 changes: 20 additions & 19 deletions tests/regressiontests/generic_inline_admin/tests.py
Expand Up @@ -83,29 +83,27 @@ class GenericInlineAdminParametersTest(TestCase):

def setUp(self):
self.client.login(username='super', password='secret')

# Can't load content via a fixture (since the GenericForeignKey
# relies on content type IDs, which will vary depending on what
# other tests have been run), thus we do it here.
test_classes = [
Episode,
EpisodeExtra,
EpisodeMaxNum,
EpisodeExclude,
]
for klass in test_classes:
e = klass.objects.create(name='This Week in Django')
m = Media(content_object=e, url='http://example.com/podcast.mp3')
m.save()


def tearDown(self):
self.client.logout()

def _create_object(self, model):
"""
Create a model with an attached Media object via GFK. We can't
load content via a fixture (since the GenericForeignKey relies on
content type IDs, which will vary depending on what other tests
have been run), thus we do it here.
"""
e = model.objects.create(name='This Week in Django')
Media.objects.create(content_object=e, url='http://example.com/podcast.mp3')
return e

def testNoParam(self):
"""
With one initial form, extra (default) at 3, there should be 4 forms.
"""
response = self.client.get('/generic_inline_admin/admin/generic_inline_admin/episode/1/')
e = self._create_object(Episode)
response = self.client.get('/generic_inline_admin/admin/generic_inline_admin/episode/%s/' % e.pk)
formset = response.context[-1]['inline_admin_formsets'][0].formset
self.assertEqual(formset._total_form_count, 4)
self.assertEqual(formset._initial_form_count, 1)
Expand All @@ -114,7 +112,8 @@ def testExtraParam(self):
"""
With extra=0, there should be one form.
"""
response = self.client.get('/generic_inline_admin/admin/generic_inline_admin/episodeextra/2/')
e = self._create_object(EpisodeExtra)
response = self.client.get('/generic_inline_admin/admin/generic_inline_admin/episodeextra/%s/' % e.pk)
formset = response.context[-1]['inline_admin_formsets'][0].formset
self.assertEqual(formset._total_form_count, 1)
self.assertEqual(formset._initial_form_count, 1)
Expand All @@ -123,8 +122,9 @@ def testMaxNumParam(self):
"""
With extra=5 and max_num=2, there should be only 2 forms.
"""
e = self._create_object(EpisodeMaxNum)
inline_form_data = '<input type="hidden" name="generic_inline_admin-media-content_type-object_id-TOTAL_FORMS" value="2" id="id_generic_inline_admin-media-content_type-object_id-TOTAL_FORMS" /><input type="hidden" name="generic_inline_admin-media-content_type-object_id-INITIAL_FORMS" value="1" id="id_generic_inline_admin-media-content_type-object_id-INITIAL_FORMS" />'
response = self.client.get('/generic_inline_admin/admin/generic_inline_admin/episodemaxnum/3/')
response = self.client.get('/generic_inline_admin/admin/generic_inline_admin/episodemaxnum/%s/' % e.pk)
formset = response.context[-1]['inline_admin_formsets'][0].formset
self.assertEqual(formset._total_form_count, 2)
self.assertEqual(formset._initial_form_count, 1)
Expand All @@ -133,6 +133,7 @@ def testExcludeParam(self):
"""
Generic inline formsets should respect include.
"""
response = self.client.get('/generic_inline_admin/admin/generic_inline_admin/episodeexclude/4/')
e = self._create_object(EpisodeExclude)
response = self.client.get('/generic_inline_admin/admin/generic_inline_admin/episodeexclude/%s/' % e.pk)
formset = response.context[-1]['inline_admin_formsets'][0].formset
self.failIf('url' in formset.forms[0], 'The formset has excluded "url" field.')

0 comments on commit 2ceee52

Please sign in to comment.