Coverage for tests/test_dependenpy.py: 100.00%
24 statements
« prev ^ index » next coverage.py v7.10.5, created at 2025-08-24 18:36 +0200
« prev ^ index » next coverage.py v7.10.5, created at 2025-08-24 18:36 +0200
1"""Tests for main features."""
3from __future__ import annotations
5import pytest
7from dependenpy._internal.cli import main
8from dependenpy._internal.dsm import DSM
11@pytest.mark.parametrize(
12 "args",
13 [
14 ["-l", "dependenpy"],
15 ["-m", "dependenpy"],
16 ["-t", "dependenpy"],
17 ["dependenpy", "-d100"],
18 ["dependenpy,internal,dependenpy"],
19 ],
20)
21def test_main_ok(args: list[str]) -> None:
22 """Main test method.
24 Arguments:
25 args: Command line arguments.
26 """
27 assert main(args) == 0
30def test_main_not_ok() -> None:
31 """Main test method."""
32 assert main(["do not exist"]) == 1
35def test_tree() -> None:
36 """Test the built tree."""
37 dsm = DSM("internal")
38 items = [
39 "internal",
40 "internal.subpackage_a",
41 "internal.subpackage_a.subpackage_1",
42 "internal.subpackage_a.subpackage_1.__init__",
43 "internal.subpackage_a.subpackage_1.module_i",
44 "internal.subpackage_a.__init__",
45 "internal.subpackage_a.module_1",
46 "internal.__init__",
47 "internal.module_a",
48 ]
49 for item in items:
50 assert dsm.get(item)
53def test_inner_imports() -> None:
54 """Test inner imports."""
55 dsm = DSM("internal")
56 module_i = dsm["internal.subpackage_a.subpackage_1.module_i"]
57 assert len(module_i.dependencies) == 4 # type: ignore[union-attr]
58 assert module_i.cardinal(to=dsm["internal"]) == 3
61def test_delayed_build() -> None:
62 """Test delayed build."""
63 dsm = DSM("internal", build_tree=False)
64 dsm.build_tree()
65 dsm.build_dependencies()
66 assert len(dsm.submodules) == 6