mirror of
				https://github.com/django/django.git
				synced 2025-10-31 07:57:51 +03:00 
			
		
		
		
	Fixed #10165 -- Use settings.TEST_RUNNER in runtests.py
This permits running Django's core tests under an alternative test runner. Most likely useful to non-CPython implementations, rather than much else (since Django's core tests might assume things about the test runner). Patch from Leo Soto. git-svn-id: http://code.djangoproject.com/svn/django/trunk@9918 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		
							parent
							
								
									415ffa8df5
								
							
						
					
					
						commit
						beb20057a3
					
				|  | @ -14,18 +14,11 @@ class Command(BaseCommand): | |||
| 
 | ||||
|     def handle(self, *test_labels, **options): | ||||
|         from django.conf import settings | ||||
|         from django.test.utils import get_runner | ||||
| 
 | ||||
|         verbosity = int(options.get('verbosity', 1)) | ||||
|         interactive = options.get('interactive', True) | ||||
| 
 | ||||
|         test_path = settings.TEST_RUNNER.split('.') | ||||
|         # Allow for Python 2.5 relative paths | ||||
|         if len(test_path) > 1: | ||||
|             test_module_name = '.'.join(test_path[:-1]) | ||||
|         else: | ||||
|             test_module_name = '.' | ||||
|         test_module = __import__(test_module_name, {}, {}, test_path[-1]) | ||||
|         test_runner = getattr(test_module, test_path[-1]) | ||||
|         test_runner = get_runner(settings) | ||||
| 
 | ||||
|         failures = test_runner(test_labels, verbosity=verbosity, interactive=interactive) | ||||
|         if failures: | ||||
|  |  | |||
|  | @ -65,3 +65,14 @@ def teardown_test_environment(): | |||
| 
 | ||||
|     del mail.outbox | ||||
| 
 | ||||
| 
 | ||||
| def get_runner(settings): | ||||
|     test_path = settings.TEST_RUNNER.split('.') | ||||
|     # Allow for Python 2.5 relative paths | ||||
|     if len(test_path) > 1: | ||||
|         test_module_name = '.'.join(test_path[:-1]) | ||||
|     else: | ||||
|         test_module_name = '.' | ||||
|     test_module = __import__(test_module_name, {}, {}, test_path[-1]) | ||||
|     test_runner = getattr(test_module, test_path[-1]) | ||||
|     return test_runner | ||||
|  |  | |||
|  | @ -149,8 +149,12 @@ def django_tests(verbosity, interactive, test_labels): | |||
|                 pass | ||||
| 
 | ||||
|     # Run the test suite, including the extra validation tests. | ||||
|     from django.test.simple import run_tests | ||||
|     failures = run_tests(test_labels, verbosity=verbosity, interactive=interactive, extra_tests=extra_tests) | ||||
|     from django.test.utils import get_runner | ||||
|     if not hasattr(settings, 'TEST_RUNNER'): | ||||
|         settings.TEST_RUNNER = 'django.test.simple.run_tests' | ||||
|     test_runner = get_runner(settings) | ||||
| 
 | ||||
|     failures = test_runner(test_labels, verbosity=verbosity, interactive=interactive, extra_tests=extra_tests) | ||||
|     if failures: | ||||
|         sys.exit(failures) | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user