def test_get_metadata_wrapper_with_empty_cache(self, gen_cache: Mock) -> None: path = "tests/pyre/simple_class.py" gen_cache.return_value = {path: {"types": []}} manager = FullRepoManager(REPO_ROOT_DIR, [path], [TypeInferenceProvider]) wrapper = manager.get_metadata_wrapper_for_path(path) self.assertEqual(wrapper.resolve(TypeInferenceProvider), {})
def test_get_metadata_wrapper_with_invalid_path(self, gen_cache: Mock) -> None: path = "tests/pyre/simple_class.py" gen_cache.return_value = {path: {"types": []}} manager = FullRepoManager(REPO_ROOT_DIR, ["invalid_path.py"], [TypeInferenceProvider]) with self.assertRaisesRegex( Exception, "The path needs to be in paths parameter when constructing FullRepoManager for efficient batch processing.", ): manager.get_metadata_wrapper_for_path(path)
def test_with_full_repo_manager(self) -> None: with TemporaryDirectory() as dir: fname = "pkg/mod.py" (Path(dir) / "pkg").mkdir() (Path(dir) / fname).touch() mgr = FullRepoManager(dir, [fname], [FullyQualifiedNameProvider]) wrapper = mgr.get_metadata_wrapper_for_path(fname) fqnames = wrapper.resolve(FullyQualifiedNameProvider) (mod, names) = next(iter(fqnames.items())) self.assertIsInstance(mod, cst.Module) self.assertEqual(names, { QualifiedName(name="pkg.mod", source=QualifiedNameSource.LOCAL) })
def test_get_metadata_wrapper_with_patched_cache(self, gen_cache: Mock) -> None: path_prefix = "tests/pyre/simple_class" path = f"{path_prefix}.py" gen_cache.return_value = { path: json.loads( (Path(REPO_ROOT_DIR) / f"{path_prefix}.json").read_text()) } manager = FullRepoManager(REPO_ROOT_DIR, [path], [TypeInferenceProvider]) wrapper = manager.get_metadata_wrapper_for_path(path) _test_simple_class_helper(self, wrapper)
def test_get_full_repo_cache(self, gen_cache: Mock) -> None: path_prefix = "tests/pyre/simple_class" path = f"{path_prefix}.py" mock_cache = { path: json.loads( (Path(REPO_ROOT_DIR) / f"{path_prefix}.json").read_text()) } gen_cache.return_value = mock_cache manager = FullRepoManager(REPO_ROOT_DIR, path, [TypeInferenceProvider]) cache = manager.cache self.assertEqual(cache, {TypeInferenceProvider: mock_cache})