@@ -65,6 +65,42 @@ def test_project_root_in_sys_path() -> None:
6565 assert sys .path == [PROJECT_ROOT_DIR ]
6666
6767
68+ def test_discover_package_path_source_root_as_parent (tmp_path : Any ) -> None :
69+ """Test discover_package_path when source root is a parent of the module."""
70+ # Create this temporary structure:
71+ # /tmp_path/
72+ # └── project/
73+ # └── my-package/
74+ # └── __init__.py
75+ project_dir = tmp_path / "project"
76+ package_dir = project_dir / "mypackage"
77+ package_dir .mkdir (parents = True )
78+ (package_dir / "__init__.py" ).touch ()
79+
80+ # Test with project_dir as source root (parent of package)
81+ result = discover_package_path (str (package_dir ), [str (project_dir )])
82+ assert result == str (project_dir )
83+
84+
85+ def test_discover_package_path_source_root_as_child (tmp_path : Any ) -> None :
86+ """Test discover_package_path when source root is a child of the module."""
87+ # Create this temporary structure:
88+ # /tmp_path/
89+ # └── project/
90+ # └── src/
91+ # └── my-package/
92+ # └── __init__.py
93+ project_dir = tmp_path / "project"
94+ src_dir = project_dir / "src"
95+ package_dir = src_dir / "mypackage"
96+ package_dir .mkdir (parents = True )
97+ (package_dir / "__init__.py" ).touch ()
98+
99+ # Test with src_dir as source root (child of project)
100+ result = discover_package_path (str (project_dir ), [str (src_dir )])
101+ assert result == str (src_dir )
102+
103+
68104@mock .patch ("pylint.pyreverse.main.Linker" , new = mock .MagicMock ())
69105@mock .patch ("pylint.pyreverse.main.DiadefsHandler" , new = mock .MagicMock ())
70106@mock .patch ("pylint.pyreverse.main.writer" )
0 commit comments