mirror of
				https://github.com/django/django.git
				synced 2025-10-30 17:16:10 +00:00 
			
		
		
		
	magic-removal: Changed runtests.py to use new modeltests package and to import model classes directly, rather than magic modules
git-svn-id: http://code.djangoproject.com/svn/django/branches/magic-removal@1608 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		| @@ -8,13 +8,13 @@ differently. | |||||||
| from django.core import meta | from django.core import meta | ||||||
|  |  | ||||||
| # From the "Bare-bones model" example | # From the "Bare-bones model" example | ||||||
| from django.models.basic import Article | from modeltests.basic.models import Article | ||||||
|  |  | ||||||
| # From the "Adding __repr__()" example | # From the "Adding __repr__()" example | ||||||
| from django.models.repr import Article as ArticleWithRepr | from modeltests.repr.models import Article as ArticleWithRepr | ||||||
|  |  | ||||||
| # From the "Specifying ordering" example | # From the "Specifying ordering" example | ||||||
| from django.models.ordering import Article as ArticleWithOrdering | from modeltests.ordering.models import Article as ArticleWithOrdering | ||||||
|  |  | ||||||
| # This uses all fields and metadata from Article and | # This uses all fields and metadata from Article and | ||||||
| # adds a "section" field. | # adds a "section" field. | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ import os, sys, time, traceback | |||||||
| # and Django aims to work with Python 2.3+. | # and Django aims to work with Python 2.3+. | ||||||
| import doctest | import doctest | ||||||
|  |  | ||||||
| APP_NAME = 'testapp' | MODEL_TESTS_DIR_NAME = 'modeltests' | ||||||
| OTHER_TESTS_DIR = "othertests" | OTHER_TESTS_DIR = "othertests" | ||||||
| TEST_DATABASE_NAME = 'django_test_db' | TEST_DATABASE_NAME = 'django_test_db' | ||||||
|  |  | ||||||
| @@ -18,10 +18,10 @@ def log_error(model_name, title, description): | |||||||
|         'description': description, |         'description': description, | ||||||
|     }) |     }) | ||||||
|  |  | ||||||
| MODEL_DIR = os.path.join(os.path.dirname(__file__), APP_NAME, 'models') | MODEL_TEST_DIR = os.path.join(os.path.dirname(__file__), MODEL_TESTS_DIR_NAME) | ||||||
|  |  | ||||||
| def get_test_models(): | def get_test_models(): | ||||||
|     return [f[:-3] for f in os.listdir(MODEL_DIR) if f.endswith('.py') and not f.startswith('__init__')] |     return [f for f in os.listdir(MODEL_TEST_DIR) if not f.startswith('__init__') and not f.startswith('.')] | ||||||
|  |  | ||||||
| class DjangoDoctestRunner(doctest.DocTestRunner): | class DjangoDoctestRunner(doctest.DocTestRunner): | ||||||
|     def __init__(self, verbosity_level, *args, **kwargs): |     def __init__(self, verbosity_level, *args, **kwargs): | ||||||
| @@ -67,8 +67,8 @@ class TestRunner: | |||||||
|         from django.core.db import db |         from django.core.db import db | ||||||
|         from django.core import management, meta |         from django.core import management, meta | ||||||
|  |  | ||||||
|         # Manually set INSTALLED_APPS to point to the test app. |         # Manually set INSTALLED_APPS to point to the test models. | ||||||
|         settings.INSTALLED_APPS = (APP_NAME,) |         settings.INSTALLED_APPS = [MODEL_TESTS_DIR_NAME + '.' + a for a in get_test_models()] | ||||||
|  |  | ||||||
|         # Determine which models we're going to test. |         # Determine which models we're going to test. | ||||||
|         test_models = get_test_models() |         test_models = get_test_models() | ||||||
| @@ -123,7 +123,8 @@ class TestRunner: | |||||||
|         for model_name in test_models: |         for model_name in test_models: | ||||||
|             self.output(1, "%s model: Importing" % model_name) |             self.output(1, "%s model: Importing" % model_name) | ||||||
|             try: |             try: | ||||||
|                 mod = meta.get_app(model_name) |                 # TODO: Abstract this into a meta.get_app() replacement? | ||||||
|  |                 mod = __import__(MODEL_TESTS_DIR_NAME + '.' + model_name + '.models', '', '', ['']) | ||||||
|             except Exception, e: |             except Exception, e: | ||||||
|                 log_error(model_name, "Error while importing", ''.join(traceback.format_exception(*sys.exc_info())[1:])) |                 log_error(model_name, "Error while importing", ''.join(traceback.format_exception(*sys.exc_info())[1:])) | ||||||
|                 continue |                 continue | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user