diff --git a/model_utils/tests/runtests.py b/model_utils/tests/runtests.py deleted file mode 100755 index a251e80..0000000 --- a/model_utils/tests/runtests.py +++ /dev/null @@ -1,19 +0,0 @@ -#!/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() diff --git a/model_utils/tests/test_settings.py b/model_utils/tests/test_settings.py deleted file mode 100644 index fd076b5..0000000 --- a/model_utils/tests/test_settings.py +++ /dev/null @@ -1,18 +0,0 @@ -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 - diff --git a/runtests.py b/runtests.py new file mode 100755 index 0000000..340c6d6 --- /dev/null +++ b/runtests.py @@ -0,0 +1,49 @@ +#!/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() diff --git a/setup.py b/setup.py index e4c6f15..8e60b27 100644 --- a/setup.py +++ b/setup.py @@ -44,5 +44,5 @@ setup( ], zip_safe=False, tests_require=["Django>=1.1"], - test_suite='model_utils.tests.runtests.runtests' + test_suite='runtests.runtests' )