Skip to content

Commit 0417a67

Browse files
committed
Update test
1 parent 0a8ebeb commit 0417a67

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

tests/test_modutils.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,41 @@ def test_import_symlink_with_source_outside_of_path(self) -> None:
175175
finally:
176176
os.remove(linked_file_name)
177177

178+
def test_modpath_from_file_path_order(self) -> None:
179+
"""Test for ordering of paths.
180+
The test does the following:
181+
1. Add a tmp directory to beginning of sys.path
182+
2. Create a module file in sub directory of tmp directory
183+
3. If the sub directory is passed as additional directory, module name
184+
should be relative to the subdirectory since additional directory has
185+
higher precedence."""
186+
orig_path = sys.path.copy()
187+
with tempfile.TemporaryDirectory() as tmp_dir:
188+
try:
189+
mod_name = "module"
190+
sub_dirname = "subdir"
191+
sub_dir = tmp_dir + "/" + sub_dirname
192+
os.mkdir(sub_dir)
193+
module_file = f"{sub_dir}/{mod_name}.py"
194+
195+
sys.path.insert(0, str(tmp_dir))
196+
with open(module_file, "w+", encoding="utf-8"):
197+
pass
198+
199+
# Without additional directory, return relative to tmp_dir
200+
self.assertEqual(
201+
modutils.modpath_from_file(module_file), [sub_dirname, mod_name]
202+
)
203+
204+
# With sub directory as additional directory, return relative to
205+
# sub directory
206+
self.assertEqual(
207+
modutils.modpath_from_file(f"{sub_dir}/{mod_name}.py", [sub_dir]),
208+
[mod_name],
209+
)
210+
finally:
211+
sys.path[:] = orig_path
212+
178213
def test_import_symlink_both_outside_of_path(self) -> None:
179214
with tempfile.NamedTemporaryFile() as tmpfile:
180215
linked_file_name = os.path.join(tempfile.gettempdir(), "symlinked_file.py")

0 commit comments

Comments
 (0)