2012-09-20 16:06:27 +04:00
|
|
|
#!/usr/bin/env python
|
|
|
|
|
|
|
|
# http://ericholscher.com/blog/2009/jun/29/enable-setuppy-test-your-django-apps/
|
|
|
|
# http://www.travisswicegood.com/2010/01/17/django-virtualenv-pip-and-fabric/
|
|
|
|
# http://code.djangoproject.com/svn/django/trunk/tests/runtests.py
|
|
|
|
import os
|
|
|
|
import sys
|
2012-12-30 12:06:04 +04:00
|
|
|
|
|
|
|
# fix sys path so we don't need to setup PYTHONPATH
|
|
|
|
sys.path.append(os.path.join(os.path.dirname(__file__), "../.."))
|
2012-09-20 16:06:27 +04:00
|
|
|
os.environ['DJANGO_SETTINGS_MODULE'] = 'rest_framework.runtests.settings'
|
|
|
|
|
2013-05-29 12:18:38 +04:00
|
|
|
import django
|
2012-09-20 16:06:27 +04:00
|
|
|
from django.conf import settings
|
|
|
|
from django.test.utils import get_runner
|
|
|
|
|
|
|
|
|
|
|
|
def usage():
|
|
|
|
return """
|
|
|
|
Usage: python runtests.py [UnitTestClass].[method]
|
|
|
|
|
|
|
|
You can pass the Class name of the `UnitTestClass` you want to test.
|
|
|
|
|
|
|
|
Append a method name if you only want to test a specific method of that class.
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
2014-01-28 16:20:51 +04:00
|
|
|
try:
|
|
|
|
django.setup()
|
|
|
|
except AttributeError:
|
|
|
|
pass
|
2012-09-20 16:06:27 +04:00
|
|
|
TestRunner = get_runner(settings)
|
|
|
|
|
|
|
|
test_runner = TestRunner()
|
|
|
|
if len(sys.argv) == 2:
|
|
|
|
test_case = '.' + sys.argv[1]
|
|
|
|
elif len(sys.argv) == 1:
|
|
|
|
test_case = ''
|
|
|
|
else:
|
2012-11-21 22:36:35 +04:00
|
|
|
print(usage())
|
2012-09-20 16:06:27 +04:00
|
|
|
sys.exit(1)
|
2013-05-29 12:18:38 +04:00
|
|
|
test_module_name = 'rest_framework.tests'
|
|
|
|
if django.VERSION[0] == 1 and django.VERSION[1] < 6:
|
|
|
|
test_module_name = 'tests'
|
|
|
|
|
|
|
|
failures = test_runner.run_tests([test_module_name + test_case])
|
2012-09-20 16:06:27 +04:00
|
|
|
|
|
|
|
sys.exit(failures)
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
main()
|