Meshroom/tests/utils.py
Candice Bentéjac 28042dd2ad [tests] Harmonize and clean-up syntax across test files
Also comply more with PEP8 linting rules.
2025-06-05 14:40:09 +02:00

28 lines
818 B
Python

from contextlib import contextmanager
from unittest.mock import patch
from typing import Type
import meshroom
from meshroom.core import registerNodeType, unregisterNodeType
from meshroom.core import desc
@contextmanager
def registeredNodeTypes(nodeTypes: list[Type[desc.Node]]):
for nodeType in nodeTypes:
registerNodeType(nodeType)
yield
for nodeType in nodeTypes:
unregisterNodeType(nodeType)
@contextmanager
def overrideNodeTypeVersion(nodeType: Type[desc.Node], version: str):
""" Helper context manager to override the version of a given node type. """
unpatchedFunc = meshroom.core.nodeVersion
with patch.object(
meshroom.core,
"nodeVersion",
side_effect=lambda type: version if type is nodeType else unpatchedFunc(type),
):
yield