Commit 17bd39ae authored by Ian Kelly's avatar Ian Kelly
Browse files

[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.

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@14550 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 8c7df219
Loading
Loading
Loading
Loading
+1 −7
Original line number Diff line number Diff line
@@ -28,13 +28,7 @@ class Stuff(models.Model):
    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):
+35 −17
Original line number Diff line number Diff line
@@ -7,11 +7,12 @@ try:
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
@@ -58,8 +59,9 @@ class TestFixtures(TestCase):
            weight=2.2
        )
        animal.save()
        self.assertGreater(animal.id, 1)
        self.assertTrue(animal.id > 1)

    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
@@ -75,6 +77,22 @@ class TestFixtures(TestCase):
            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):
        """
        Regression test for ticket #6436 --