def test_is_namespace_package(namespace_package_test): # returns True if it is a namespace package assert is_namespace_package(namespace_package_test) # returns False if it isn't a namespace package assert not is_namespace_package('sys') assert not is_namespace_package('jupyter_server') # returns None if it isn't importable assert is_namespace_package('not_a_python_namespace') is None
def get_extension_package(cls): parts = cls.__module__.split('.') if is_namespace_package(parts[0]): # in this case the package name is `<namespace>.<package>`. return '.'.join(parts[0:2]) return parts[0]
def test_is_namespace_package_no_spec(): with patch("importlib.util.find_spec") as mocked_spec: mocked_spec.side_effect = ValueError() assert is_namespace_package("dummy") is None mocked_spec.assert_called_once_with("dummy")
def test_is_namespace_package(monkeypatch, name, expected): monkeypatch.syspath_prepend( Path(__file__).parent / "namespace-package-test") assert is_namespace_package(name) is expected