(self)
| 367 | (loader, [], 'test*.py')]) |
| 368 | |
| 369 | def test_discover(self): |
| 370 | loader = unittest.TestLoader() |
| 371 | |
| 372 | original_isfile = os.path.isfile |
| 373 | original_isdir = os.path.isdir |
| 374 | def restore_isfile(): |
| 375 | os.path.isfile = original_isfile |
| 376 | |
| 377 | os.path.isfile = lambda path: False |
| 378 | self.addCleanup(restore_isfile) |
| 379 | |
| 380 | orig_sys_path = sys.path[:] |
| 381 | def restore_path(): |
| 382 | sys.path[:] = orig_sys_path |
| 383 | self.addCleanup(restore_path) |
| 384 | |
| 385 | full_path = os.path.abspath(os.path.normpath('/foo')) |
| 386 | with self.assertRaises(ImportError): |
| 387 | loader.discover('/foo/bar', top_level_dir='/foo') |
| 388 | |
| 389 | self.assertEqual(loader._top_level_dir, full_path) |
| 390 | self.assertIn(full_path, sys.path) |
| 391 | |
| 392 | os.path.isfile = lambda path: True |
| 393 | os.path.isdir = lambda path: True |
| 394 | |
| 395 | def restore_isdir(): |
| 396 | os.path.isdir = original_isdir |
| 397 | self.addCleanup(restore_isdir) |
| 398 | |
| 399 | _find_tests_args = [] |
| 400 | def _find_tests(start_dir, pattern, namespace=None): |
| 401 | _find_tests_args.append((start_dir, pattern)) |
| 402 | return ['tests'] |
| 403 | loader._find_tests = _find_tests |
| 404 | loader.suiteClass = str |
| 405 | |
| 406 | suite = loader.discover('/foo/bar/baz', 'pattern', '/foo/bar') |
| 407 | |
| 408 | top_level_dir = os.path.abspath('/foo/bar') |
| 409 | start_dir = os.path.abspath('/foo/bar/baz') |
| 410 | self.assertEqual(suite, "['tests']") |
| 411 | self.assertEqual(loader._top_level_dir, os.path.abspath('/foo')) |
| 412 | self.assertEqual(_find_tests_args, [(start_dir, 'pattern')]) |
| 413 | self.assertIn(top_level_dir, sys.path) |
| 414 | |
| 415 | def test_discover_should_not_persist_top_level_dir_between_calls(self): |
| 416 | original_isfile = os.path.isfile |
nothing calls this directly
no test coverage detected