Commit 8a7a44ff authored by Ian Kelly's avatar Ian Kelly
Browse files

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/trunk@14547 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 9892f4c5
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 (connection.features.interprets_empty_strings_as_nulls
            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):
+19 −1
Original line number Diff line number Diff line
@@ -13,7 +13,8 @@ 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.test import TestCase, TransactionTestCase
from django.test import TestCase, TransactionTestCase, skipIfDBFeature, \
    skipUnlessDBFeature

from models import Animal, Stuff
from models import Absolute, Parent, Child
@@ -61,6 +62,7 @@ class TestFixtures(TestCase):
        animal.save()
        self.assertGreater(animal.id, 1)

    @skipIfDBFeature('interprets_empty_strings_as_nulls')
    def test_pretty_print_xml(self):
        """
        Regression test for ticket #4558 -- pretty printing of XML fixtures
@@ -76,6 +78,22 @@ class TestFixtures(TestCase):
        self.assertEqual(Stuff.objects.all()[0].name, None)
        self.assertEqual(Stuff.objects.all()[0].owner, None)

    @skipUnlessDBFeature('interprets_empty_strings_as_nulls')
    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 --