Skip to content

Commit 330340a

Browse files
authored
Fix test module imports (#277)
This commit modifies `top_level_dir`, which is used to resolve module names when loading unittests, to ensure, only modules from specified ST package are importet. Without this commit, UnitTesting might attempt to import packages/modules/tests from Lib/ directory due to possible ambiguities. Scenario: Plugins of `MyPackage` are organized in `Packages/MyPackage/dirname/` and tests in `Packages/MyPackage/dirname/tests/`. If a library `Lib/pythonXX/dirname` exists, Unittesting would have attempted to import tests from that directory, because test module paths would have been translated to `dirname.tests` due to `top_level_dir` pointing to `Packages/MyPackage`. By adjusting `top_level_dir` to `Packages/`, test module names are translated to `MyPackage.dirname.tests` instead.
1 parent f8be6fb commit 330340a

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

unittesting/unit.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ def run_tests(self, stream, package, settings, cleanup_hooks):
221221
loader = DeferrableTestLoader(settings["deferred"])
222222
if os.path.exists(os.path.join(start_dir, "__init__.py")):
223223
tests = loader.discover(
224-
start_dir, settings["pattern"], top_level_dir=package_dir
224+
start_dir, settings["pattern"], top_level_dir=sublime.packages_path()
225225
)
226226
else:
227227
tests = loader.discover(start_dir, settings["pattern"])

0 commit comments

Comments
 (0)