Commits

ike...@bcc190cf-cafb-0310-a4f2-bffc1f526a37  committed ebb610d

[1.2.X] Backport of r14547 from trunk.

Fixed a test case that was failing in Oracle due to conflation of null and empty strings.

  • Participants
  • Parent commits 0a2a37e
  • Branches releases/1.2.X

Comments (0)

Files changed (2)

File tests/regressiontests/fixtures_regress/models.py

     owner = models.ForeignKey(User, null=True)
 
     def __unicode__(self):
-        # Oracle doesn't distinguish between None and the empty string.
-        # This hack makes the test case pass using Oracle.
-        name = self.name
-        if (settings.DATABASES[DEFAULT_DB_ALIAS]['ENGINE'] == 'django.db.backends.oracle'
-            and name == u''):
-            name = None
-        return unicode(name) + u' is owned by ' + unicode(self.owner)
+        return unicode(self.name) + u' is owned by ' + unicode(self.owner)
 
 
 class Absolute(models.Model):

File tests/regressiontests/fixtures_regress/tests.py

 except ImportError:
     from StringIO import StringIO
 
+from django.conf import settings
 from django.core import management
 from django.core.management.commands.dumpdata import sort_dependencies
 from django.core.management.base import CommandError
 from django.db.models import signals
-from django.db import transaction
+from django.db import DEFAULT_DB_ALIAS, transaction
 from django.test import TestCase, TransactionTestCase
 
 from models import Animal, Stuff
             weight=2.2
         )
         animal.save()
-        self.assertGreater(animal.id, 1)
+        self.assertTrue(animal.id > 1)
 
-    def test_pretty_print_xml(self):
-        """
-        Regression test for ticket #4558 -- pretty printing of XML fixtures
-        doesn't affect parsing of None values.
-        """
-        # Load a pretty-printed XML fixture with Nulls.
-        management.call_command(
-            'loaddata',
-            'pretty.xml',
-            verbosity=0,
-            commit=False
-        )
-        self.assertEqual(Stuff.objects.all()[0].name, None)
-        self.assertEqual(Stuff.objects.all()[0].owner, None)
+    if settings.DATABASES[DEFAULT_DB_ALIAS]['ENGINE'] != 'django.db.backends.oracle':
+        def test_pretty_print_xml(self):
+            """
+            Regression test for ticket #4558 -- pretty printing of XML fixtures
+            doesn't affect parsing of None values.
+            """
+            # Load a pretty-printed XML fixture with Nulls.
+            management.call_command(
+                'loaddata',
+                'pretty.xml',
+                verbosity=0,
+                commit=False
+            )
+            self.assertEqual(Stuff.objects.all()[0].name, None)
+            self.assertEqual(Stuff.objects.all()[0].owner, None)
+
+    if settings.DATABASES[DEFAULT_DB_ALIAS]['ENGINE'] == 'django.db.backends.oracle':
+        def test_pretty_print_xml_empty_strings(self):
+            """
+            Regression test for ticket #4558 -- pretty printing of XML fixtures
+            doesn't affect parsing of None values.
+            """
+            # Load a pretty-printed XML fixture with Nulls.
+            management.call_command(
+                'loaddata',
+                'pretty.xml',
+                verbosity=0,
+                commit=False
+            )
+            self.assertEqual(Stuff.objects.all()[0].name, u'')
+            self.assertEqual(Stuff.objects.all()[0].owner, None)
 
     def test_absolute_path(self):
         """