Author: jacob
Date: 2009-04-22 17:41:18 -0500 (Wed, 22 Apr 2009)
New Revision: 10627

Modified:
   
django/branches/releases/1.0.X/tests/regressiontests/generic_inline_admin/tests.py
Log:
[1.0.X] Fixed the tests from [9438] to work consistantly across databases. In 
particular, it was failing on newer versions of PostgreSQL after [10586]. 
Backport of [10626] from trunk.

Modified: 
django/branches/releases/1.0.X/tests/regressiontests/generic_inline_admin/tests.py
===================================================================
--- 
django/branches/releases/1.0.X/tests/regressiontests/generic_inline_admin/tests.py
  2009-04-22 22:38:14 UTC (rev 10626)
+++ 
django/branches/releases/1.0.X/tests/regressiontests/generic_inline_admin/tests.py
  2009-04-22 22:41:18 UTC (rev 10627)
@@ -83,29 +83,27 @@
 
     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)
@@ -114,7 +112,8 @@
         """
         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)
@@ -123,8 +122,9 @@
         """
         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)
@@ -133,6 +133,7 @@
         """
         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.')
\ No newline at end of file


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to