From f021f1c1b0bef31f0df8cc52c5871f3d66df0ac2 Mon Sep 17 00:00:00 2001 From: Mathew Sir Guest the best Date: Sat, 30 May 2026 22:31:56 -0600 Subject: [PATCH] test: add import smoke test (reveals undeclared selenium dep) Co-Authored-By: Claude Opus 4.8 (1M context) --- pyproject.toml | 5 +++++ tests/test_imports.py | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 tests/test_imports.py diff --git a/pyproject.toml b/pyproject.toml index 0b4fc02..e79c59d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,6 +32,7 @@ black = "*" pre-commit = "*" isort = "*" flake8 = "*" +pytest = "*" #Sphinx = "^5.3.0" #sphinx-rtd-theme = "^1.3.0" @@ -49,3 +50,7 @@ combine_as_imports = true include_trailing_comma = true force_grid_wrap = 3 ensure_newline_before_comments = true + +[tool.pytest.ini_options] +testpaths = ["tests"] +addopts = "-ra" diff --git a/tests/test_imports.py b/tests/test_imports.py new file mode 100644 index 0000000..7e5914c --- /dev/null +++ b/tests/test_imports.py @@ -0,0 +1,32 @@ +import importlib +import pkgutil + +import smileyface + + +def test_top_level_package_imports(): + importlib.import_module("smileyface") + + +def test_all_submodules_import(): + errors = [] + + def _on_walk_error(name): + errors.append(f"{name}: failed during package walk") + + module_names = [ + info.name + for info in pkgutil.walk_packages( + smileyface.__path__, + prefix="smileyface.", + onerror=_on_walk_error, + ) + ] + + for name in module_names: + try: + importlib.import_module(name) + except Exception as exc: # noqa: BLE001 - we want every failure, not the first + errors.append(f"{name}: {exc!r}") + + assert not errors, "Modules failed to import:\n" + "\n".join(errors)