diff --git a/.gitignore b/.gitignore index 959f397..df997af 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,4 @@ lib/ MANIFEST dist/ *.egg-info +.tox/ diff --git a/runtests.py b/runtests.py new file mode 100755 index 0000000..bd4a86b --- /dev/null +++ b/runtests.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python +from django.conf import settings, global_settings as default_settings +from django.core.management import call_command +from os.path import dirname, realpath +import django +import sys +import os + + +# Give feedback on used versions +sys.stderr.write('Using Python version {0} from {1}\n'.format(sys.version[:5], sys.executable)) +sys.stderr.write('Using Django version {0} from {1}\n'.format( + django.get_version(), + os.path.dirname(os.path.abspath(django.__file__))) +) + + +# Detect location and available modules +module_root = dirname(realpath(__file__)) + +# Inline settings file +settings.configure( + DEBUG = False, # will be False anyway by DjangoTestRunner. + TEMPLATE_DEBUG = False, + DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': ':memory:' + } + }, + TEMPLATE_LOADERS = ( + 'django.template.loaders.app_directories.Loader', + ), + TEMPLATE_CONTEXT_PROCESSORS = default_settings.TEMPLATE_CONTEXT_PROCESSORS + ( + 'django.core.context_processors.request', + ), + INSTALLED_APPS = ( + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.messages', + 'django.contrib.sites', + 'django.contrib.admin', + 'polymorphic', + ), + SITE_ID = 3, +) + +call_command('syncdb', verbosity=1, interactive=False) + + +# ---- app start +verbosity = 2 if '-v' in sys.argv else 1 + +from django.test.utils import get_runner +TestRunner = get_runner(settings) # DjangoTestSuiteRunner +runner = TestRunner(verbosity=verbosity, interactive=True, failfast=False) +failures = runner.run_tests(['polymorphic']) + +if failures: + sys.exit(bool(failures)) diff --git a/setup.py b/setup.py index 4a379a6..5442bff 100644 --- a/setup.py +++ b/setup.py @@ -20,6 +20,7 @@ setup( }, install_requires=['setuptools'], + test_suite='runtests', classifiers=[ 'Framework :: Django', diff --git a/tox.ini b/tox.ini index 681be81..a0faa6f 100644 --- a/tox.ini +++ b/tox.ini @@ -7,7 +7,7 @@ envlist= [testenv] commands= - python manage.py test + python runtests.py # Build configurations