summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Kelly <ian.g.kelly@gmail.com>2010-11-12 19:47:41 +0000
committerIan Kelly <ian.g.kelly@gmail.com>2010-11-12 19:47:41 +0000
commit17bd39ae5a0337f8bcd535a5fb03d27aaf0ab0c4 (patch)
tree82b6042ebc4aaa21fef83f9919c53d45d5422015
parent8c7df2198acc6b81522bf0b89d348dbffd7dacce (diff)
[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
-rw-r--r--tests/regressiontests/fixtures_regress/models.py8
-rw-r--r--tests/regressiontests/fixtures_regress/tests.py50
2 files changed, 35 insertions, 23 deletions
diff --git a/tests/regressiontests/fixtures_regress/models.py b/tests/regressiontests/fixtures_regress/models.py
index 2c435625f0..7465fd242d 100644
--- a/tests/regressiontests/fixtures_regress/models.py
+++ b/tests/regressiontests/fixtures_regress/models.py
@@ -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):
diff --git a/tests/regressiontests/fixtures_regress/tests.py b/tests/regressiontests/fixtures_regress/tests.py
index 404181e52b..57ee7c0451 100644
--- a/tests/regressiontests/fixtures_regress/tests.py
+++ b/tests/regressiontests/fixtures_regress/tests.py
@@ -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,22 +59,39 @@ class TestFixtures(TestCase):
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):
"""