Fixed a test that relied on the database to reject invalid data; MySQL doesn't. Refs #17055.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16996 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Aymeric Augustin 2011-10-16 14:30:43 +00:00
parent 8fb7a90026
commit b7f2aba566
1 changed files with 6 additions and 0 deletions

View File

@ -4,6 +4,7 @@ import StringIO
from django.contrib.sites.models import Site from django.contrib.sites.models import Site
from django.core import management from django.core import management
from django.db import connection
from django.test import TestCase, TransactionTestCase, skipUnlessDBFeature from django.test import TestCase, TransactionTestCase, skipUnlessDBFeature
from .models import Article, Book, Spy, Tag, Visa from .models import Article, Book, Spy, Tag, Visa
@ -260,6 +261,11 @@ class FixtureLoadingTests(TestCase):
outputs an error message which contains the pk of the object outputs an error message which contains the pk of the object
that triggered the error. that triggered the error.
""" """
# MySQL needs a little prodding to reject invalid data.
# This won't affect other tests because the database connection
# is closed at the end of each test.
if connection.vendor == 'mysql':
connection.cursor().execute("SET sql_mode = 'TRADITIONAL'")
new_io = StringIO.StringIO() new_io = StringIO.StringIO()
management.call_command('loaddata', 'invalid.json', verbosity=0, stderr=new_io, commit=False) management.call_command('loaddata', 'invalid.json', verbosity=0, stderr=new_io, commit=False)
output = new_io.getvalue().strip().split('\n') output = new_io.getvalue().strip().split('\n')