MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_discover

Method test_discover

Lib/test/test_unittest/test_discovery.py:369–413  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 5

discoverMethod · 0.95
addCleanupMethod · 0.80
assertInMethod · 0.80
assertRaisesMethod · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected