mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-06-20 19:47:22 +02:00
28 lines
818 B
Python
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
|