diff --git a/MANIFEST.in b/MANIFEST.in index 86e75b33..fbf55fd3 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,4 @@ -include README.rst COPYING setup.py MANIFEST.in CHANGELOG.md +include README.rst COPYING setup.py MANIFEST.in CHANGELOG.md ropetest-package-fixtures/example-external-package/dist/example_external_package-1.0.0.tar.gz ropetest-package-fixtures/example-external-package/dist/example_external_package-1.0.0-py3-none-any.whl recursive-include rope *.py recursive-include docs *.rst recursive-include ropetest *.py diff --git a/pyproject.toml b/pyproject.toml index 0df77c25..276938f3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -87,6 +87,7 @@ profile = "black" [tool.pytest.ini_options] +testpaths = "ropetest" python_files = [ "*test.py", "__init__.py", diff --git a/ropetest/contrib/autoimport/conftest.py b/ropetest/contrib/autoimport/conftest.py index a3291304..670e0db5 100644 --- a/ropetest/contrib/autoimport/conftest.py +++ b/ropetest/contrib/autoimport/conftest.py @@ -24,19 +24,18 @@ def typing_path(): @pytest.fixture -def build_env_path(): - from build import env - - yield pathlib.Path(env.__file__) +def example_external_package_module_path(example_external_package): + from example_external_package import example_module + yield pathlib.Path(example_module.__file__) @pytest.fixture -def build_path(): - import build +def example_external_package_path(example_external_package): + import example_external_package # Uses __init__.py so we need the parent - yield pathlib.Path(build.__file__).parent + yield pathlib.Path(example_external_package.__file__).parent @pytest.fixture diff --git a/ropetest/contrib/autoimport/utilstest.py b/ropetest/contrib/autoimport/utilstest.py index ca003430..c6ca5b3d 100644 --- a/ropetest/contrib/autoimport/utilstest.py +++ b/ropetest/contrib/autoimport/utilstest.py @@ -14,11 +14,12 @@ def test_get_package_source_not_project(mod1_path): assert utils.get_package_source(mod1_path, None, "") == Source.UNKNOWN -def test_get_package_source_pytest(build_path): +def test_get_package_source_pytest(example_external_package_path): # pytest is not installed as part of the standard library # but should be installed into site_packages, # so it should return Source.SITE_PACKAGE - assert utils.get_package_source(build_path, None, "build") == Source.SITE_PACKAGE + source = utils.get_package_source(example_external_package_path, None, "example_module") + assert source == Source.SITE_PACKAGE def test_get_package_source_typing(typing_path): @@ -33,9 +34,15 @@ def test_get_modname_single_file(typing_path): assert utils.get_modname_from_path(typing_path, typing_path) == "typing" -def test_get_modname_folder(build_path, build_env_path): - - assert utils.get_modname_from_path(build_env_path, build_path) == "build.env" +def test_get_modname_folder( + example_external_package_path, + example_external_package_module_path, +): + modname = utils.get_modname_from_path( + example_external_package_module_path, + example_external_package_path, + ) + assert modname == "example_external_package.example_module" def test_get_package_tuple_sample(project_path): diff --git a/ropetest/contrib/autoimporttest.py b/ropetest/contrib/autoimporttest.py index d2f481da..0fc04293 100644 --- a/ropetest/contrib/autoimporttest.py +++ b/ropetest/contrib/autoimporttest.py @@ -111,13 +111,6 @@ def test_handling_builtin_modules(self): self.importer.update_module("sys") self.assertIn("sys", self.importer.get_modules("exit")) - def test_search_submodule(self): - self.importer.update_module("build") - import_statement = ("from build import env", "env") - self.assertIn(import_statement, self.importer.search("env", exact_match=True)) - self.assertIn(import_statement, self.importer.search("en")) - self.assertIn(import_statement, self.importer.search("env")) - def test_search_module(self): self.importer.update_module("os") import_statement = ("import os", "os") @@ -184,6 +177,16 @@ def test_skipping_directories_not_accessible_because_of_permission_error(self): self.assertGreater(len(self.importer._dump_all()), 0) +def test_search_submodule(example_external_package): + project = testutils.sample_project(extension_modules=["sys"]) + importer = autoimport.AutoImport(project, observe=False) + importer.update_module("example_external_package") + import_statement = ("from example_external_package import example_module", "example_module") + assert import_statement in importer.search("example_module", exact_match=True) + assert import_statement in importer.search("exam") + assert import_statement in importer.search("example_module") + + class AutoImportObservingTest(unittest.TestCase): def setUp(self): super().setUp()