Commits

Carl Meyer committed c1949b7

Updated test-runner.

Comments (0)

Files changed (4)

model_utils/tests/runtests.py

-#!/usr/bin/env python
-
-import os, sys
-
-os.environ['DJANGO_SETTINGS_MODULE'] = 'model_utils.tests.test_settings'
-parent = os.path.dirname(os.path.dirname(os.path.dirname(
-            os.path.abspath(__file__))))
-
-sys.path.insert(0, parent)
-
-from django.test.simple import run_tests
-from django.conf import settings
-
-def runtests():
-    failures = run_tests(['tests'], verbosity=1, interactive=True)
-    sys.exit(failures)
-
-if __name__ == '__main__':
-    runtests()

model_utils/tests/test_settings.py

-import os
-
-BASE_DIR = os.path.dirname(__file__)
-
-INSTALLED_APPS = (
-    'django.contrib.contenttypes',
-    'model_utils',
-    'model_utils.tests',
-    )
-
-DATABASE_ENGINE = 'sqlite3'
-
-try:
-    import south
-    INSTALLED_APPS += ('south',)
-except ImportError:
-    pass
-
+#!/usr/bin/env python
+
+import os, sys
+
+from django.conf import settings
+
+
+if not settings.configured:
+    from django import VERSION
+    settings_dict = dict(
+        INSTALLED_APPS=(
+            'django.contrib.contenttypes',
+            'model_utils',
+            'model_utils.tests',
+            ),
+        )
+    if VERSION >= (1, 2):
+        settings_dict["DATABASES"] = {
+            "default": {
+                "ENGINE": "django.db.backends.sqlite3"
+                }}
+    else:
+        settings_dict["DATABASE_ENGINE"] = "sqlite3"
+
+    settings.configure(**settings_dict)
+
+
+def runtests(*test_args):
+    if not test_args:
+        test_args = ['tests']
+
+    parent = os.path.dirname(os.path.abspath(__file__))
+    sys.path.insert(0, parent)
+
+    try:
+        from django.test.simple import DjangoTestSuiteRunner
+        def run_tests(test_args, verbosity, interactive):
+            runner = DjangoTestSuiteRunner(
+                verbosity=verbosity, interactive=interactive, failfast=False)
+            return runner.run_tests(test_args)
+    except ImportError:
+        # for Django versions that don't have DjangoTestSuiteRunner
+        from django.test.simple import run_tests
+    failures = run_tests(test_args, verbosity=1, interactive=True)
+    sys.exit(failures)
+
+
+if __name__ == '__main__':
+    runtests()
     ],
     zip_safe=False,
     tests_require=["Django>=1.1"],
-    test_suite='model_utils.tests.runtests.runtests'
+    test_suite='runtests.runtests'
 )