fix: make pytest collection coexist with ComfyUI root __init__
pytest collects the repo root as a Package and imports its __init__.py during test setup; guard the ComfyUI-only relative imports behind __package__ so the suite can import gates.* standalone. Drop the tests/ package marker and pin pythonpath/testpaths. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+12
-2
@@ -1,7 +1,17 @@
|
||||
"""ComfyUI-Datasete-Gates — custom nodes."""
|
||||
from .gates.node import NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS
|
||||
from .gates import routes # noqa: F401 (registers aiohttp routes on import)
|
||||
|
||||
WEB_DIRECTORY = "./web"
|
||||
|
||||
# ComfyUI loads this directory as a package, so __package__ is set and the
|
||||
# relative imports below resolve. pytest, however, collects the repo root as a
|
||||
# Package and imports this file standalone (no parent package) during test
|
||||
# setup — in that case the relative imports would raise. Guard on __package__
|
||||
# so the test suite can import `gates.*` without dragging in aiohttp/comfy.
|
||||
if __package__:
|
||||
from .gates.node import NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS
|
||||
from .gates import routes # noqa: F401 (registers aiohttp routes on import)
|
||||
else: # pragma: no cover - exercised only under pytest collection
|
||||
NODE_CLASS_MAPPINGS = {}
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {}
|
||||
|
||||
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS", "WEB_DIRECTORY"]
|
||||
|
||||
@@ -7,3 +7,12 @@ requires-python = ">=3.10"
|
||||
[tool.comfy]
|
||||
PublisherId = "ethanfel"
|
||||
DisplayName = "ComfyUI Datasete Gates"
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
# The repo-root __init__.py is required by ComfyUI but breaks pytest's default
|
||||
# "prepend" collection if tests/ is a package (pytest walks up the __init__.py
|
||||
# chain and tries to import the root package, whose relative imports fail
|
||||
# outside ComfyUI). Keeping tests/ a non-package dir avoids that; pythonpath
|
||||
# makes `gates` importable from the repo root.
|
||||
pythonpath = ["."]
|
||||
testpaths = ["tests"]
|
||||
|
||||
Reference in New Issue
Block a user