Changeset 3176
- Timestamp:
- 06/20/06 00:29:19 (2 years ago)
- Files:
-
- django/trunk/tests/regressiontests (added)
- django/trunk/tests/regressiontests/__init__.py (added)
- django/trunk/tests/regressiontests/one_to_one_regress (added)
- django/trunk/tests/regressiontests/one_to_one_regress/__init__.py (added)
- django/trunk/tests/regressiontests/one_to_one_regress/models.py (added)
- django/trunk/tests/runtests.py (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/tests/runtests.py
r3133 r3176 10 10 MODEL_TESTS_DIR_NAME = 'modeltests' 11 11 OTHER_TESTS_DIR = "othertests" 12 REGRESSION_TESTS_DIR_NAME = 'regressiontests' 12 13 TEST_DATABASE_NAME = 'django_test_db' 13 14 … … 20 21 21 22 MODEL_TEST_DIR = os.path.join(os.path.dirname(__file__), MODEL_TESTS_DIR_NAME) 23 REGRESSION_TEST_DIR = os.path.join(os.path.dirname(__file__), REGRESSION_TESTS_DIR_NAME) 22 24 23 25 ALWAYS_INSTALLED_APPS = [ … … 33 35 34 36 def get_test_models(): 35 return [f for f in os.listdir(MODEL_TEST_DIR) if not f.startswith('__init__') and not f.startswith('.')] 37 return [(MODEL_TESTS_DIR_NAME, f) for f in os.listdir(MODEL_TEST_DIR) if not f.startswith('__init__') and not f.startswith('.')] +\ 38 [(REGRESSION_TESTS_DIR_NAME, f) for f in os.listdir(REGRESSION_TEST_DIR) if not f.startswith('__init__') and not f.startswith('.')] 36 39 37 40 class DjangoDoctestRunner(doctest.DocTestRunner): … … 90 93 91 94 # Manually set INSTALLED_APPS to point to the test models. 92 settings.INSTALLED_APPS = ALWAYS_INSTALLED_APPS + [ MODEL_TESTS_DIR_NAME + '.' + afor a in get_test_models()]95 settings.INSTALLED_APPS = ALWAYS_INSTALLED_APPS + ['.'.join(a) for a in get_test_models()] 93 96 94 97 # Manually set DEBUG = False. … … 111 114 if self.which_tests: 112 115 # Only run the specified tests. 113 bad_models = [m for m in self.which_tests if mnot in test_models]116 bad_models = [m for m in self.which_tests if (MODEL_TESTS_DIR_NAME, m) not in test_models and (REGRESSION_TESTS_DIR_NAME, m) not in test_models] 114 117 if bad_models: 115 118 sys.stderr.write("Models not found: %s\n" % bad_models) 116 119 sys.exit(1) 117 120 else: 118 test_models = self.which_tests 121 all_tests = [] 122 for test in self.which_tests: 123 for loc in MODEL_TESTS_DIR_NAME, REGRESSION_TESTS_DIR_NAME: 124 if (loc, test) in test_models: 125 all_tests.append((loc, test)) 126 test_models = all_tests 119 127 120 128 self.output(0, "Running tests with database %r" % settings.DATABASE_ENGINE) … … 158 166 # Run the tests for each test model. 159 167 self.output(1, "Running app tests") 160 for model_ name in test_models:168 for model_dir, model_name in test_models: 161 169 self.output(1, "%s model: Importing" % model_name) 162 170 try: 163 171 # TODO: Abstract this into a meta.get_app() replacement? 164 mod = __import__( MODEL_TESTS_DIR_NAME+ '.' + model_name + '.models', '', '', [''])172 mod = __import__(model_dir + '.' + model_name + '.models', '', '', ['']) 165 173 except Exception, e: 166 174 log_error(model_name, "Error while importing", ''.join(traceback.format_exception(*sys.exc_info())[1:])) … … 169 177 if not getattr(mod, 'error_log', None): 170 178 # Model is not marked as an invalid model 171 self.output(1, "%s model: Installing" % model_name)179 self.output(1, "%s.%s model: Installing" % (model_dir, model_name)) 172 180 management.install(mod) 173 181 … … 180 188 # has side effects on doctest TestRunner class. 181 189 runner = DjangoDoctestRunner(verbosity_level=verbosity_level, verbose=False) 182 self.output(1, "%s model: Running tests" % model_name)190 self.output(1, "%s.%s model: Running tests" % (model_dir, model_name)) 183 191 runner.run(dtest, clear_globs=True, out=sys.stdout.write) 184 192 else: 185 193 # Check that model known to be invalid is invalid for the right reasons. 186 self.output(1, "%s model: Validating" % model_name)194 self.output(1, "%s.%s model: Validating" % (model_dir, model_name)) 187 195 188 196 from cStringIO import StringIO
