fixed tests to work with django 1.7 and 1.8
Added several django versions to the travis-ci build fixes #22
This commit is contained in:
committed by
Raphaël Barrois
parent
ee65fd925d
commit
5b97c14368
@@ -3,6 +3,7 @@
|
||||
# This code is distributed under the two-clause BSD License.
|
||||
|
||||
try: # pragma: no cover
|
||||
import django
|
||||
from django.conf import settings
|
||||
django_loaded = True
|
||||
except ImportError: # pragma: no cover
|
||||
@@ -22,3 +23,7 @@ if django_loaded: # pragma: no cover
|
||||
'tests.django_test_app',
|
||||
]
|
||||
)
|
||||
# https://docs.djangoproject.com/en/dev/releases/1.7/#app-loading-changes
|
||||
if django.VERSION >= (1, 7):
|
||||
from django.apps import apps
|
||||
apps.populate(settings.INSTALLED_APPS)
|
||||
|
||||
@@ -12,21 +12,23 @@ except ImportError: # pragma: no cover
|
||||
import semantic_version
|
||||
|
||||
try: # pragma: no cover
|
||||
import django
|
||||
from django.conf import settings
|
||||
from .django_test_app import models
|
||||
from django.core import serializers
|
||||
django_loaded = True
|
||||
except ImportError: # pragma: no cover
|
||||
django_loaded = False
|
||||
|
||||
if django_loaded: # pragma: no cover
|
||||
from .django_test_app import models
|
||||
from django.core import serializers
|
||||
|
||||
try: # pragma: no cover
|
||||
import south
|
||||
import south.creator.freezer
|
||||
import south.modelsinspector
|
||||
except ImportError: # pragma: no cover
|
||||
south = None
|
||||
south = None
|
||||
# south has reached end of life, and it does not work with django 1.7 and newer
|
||||
if django_loaded and django.VERSION < (1, 7): # pragma: no cover
|
||||
try:
|
||||
import south
|
||||
import south.creator.freezer
|
||||
import south.modelsinspector
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
|
||||
@unittest.skipIf(not django_loaded, "Django not installed")
|
||||
@@ -95,8 +97,10 @@ class DjangoFieldTestCase(unittest.TestCase):
|
||||
data = serializers.serialize('json', [o1, o2])
|
||||
|
||||
obj1, obj2 = serializers.deserialize('json', data)
|
||||
self.assertEqual(o1, obj1.object)
|
||||
self.assertEqual(o2, obj2.object)
|
||||
self.assertEqual(o1.version, obj1.object.version)
|
||||
self.assertEqual(o1.spec, obj1.object.spec)
|
||||
self.assertEqual(o2.version, obj2.object.version)
|
||||
self.assertEqual(o2.spec, obj2.object.spec)
|
||||
|
||||
def test_serialization_partial(self):
|
||||
o1 = models.PartialVersionModel(partial='0.1.1', optional='0.2.4-rc42',
|
||||
@@ -107,8 +111,10 @@ class DjangoFieldTestCase(unittest.TestCase):
|
||||
data = serializers.serialize('json', [o1, o2])
|
||||
|
||||
obj1, obj2 = serializers.deserialize('json', data)
|
||||
self.assertEqual(o1, obj1.object)
|
||||
self.assertEqual(o2, obj2.object)
|
||||
self.assertEqual(o1.partial, obj1.object.partial)
|
||||
self.assertEqual(o1.optional, obj1.object.optional)
|
||||
self.assertEqual(o2.partial, obj2.object.partial)
|
||||
self.assertEqual(o2.optional, obj2.object.optional)
|
||||
|
||||
|
||||
@unittest.skipIf(not django_loaded or south is None, "Couldn't import south and django")
|
||||
@@ -173,17 +179,21 @@ class SouthTestCase(unittest.TestCase):
|
||||
|
||||
if django_loaded:
|
||||
from django.test import TestCase
|
||||
from django.test.simple import DjangoTestSuiteRunner
|
||||
try:
|
||||
from django.test.runner import DiscoverRunner as TestRunner
|
||||
except ImportError:
|
||||
# django < 1.6
|
||||
from django.test.simple import DjangoTestSuiteRunner as TestRunner
|
||||
|
||||
class DbInteractingTestCase(TestCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
cls.old_state = DjangoTestSuiteRunner().setup_databases()
|
||||
cls.old_state = TestRunner().setup_databases()
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
DjangoTestSuiteRunner().teardown_databases(cls.old_state)
|
||||
TestRunner().teardown_databases(cls.old_state)
|
||||
|
||||
def test_db_interaction(self):
|
||||
o1 = models.VersionModel(version='0.1.1', spec='<0.2.4-rc42')
|
||||
|
||||
Reference in New Issue
Block a user