mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-05-01 19:27:10 +02:00
[tests] Add test for upgrade of nodes without computation
This commit is contained in:
parent
99023841a4
commit
5101530b89
1 changed files with 37 additions and 5 deletions
|
@ -131,6 +131,26 @@ class SampleNodeV6(desc.Node):
|
||||||
desc.File(name='output', label='Output', description='', value=desc.Node.internalFolder, uid=[])
|
desc.File(name='output', label='Output', description='', value=desc.Node.internalFolder, uid=[])
|
||||||
]
|
]
|
||||||
|
|
||||||
|
class SampleInputNodeV1(desc.InputNode):
|
||||||
|
""" Version 1 Sample Input Node """
|
||||||
|
inputs = [
|
||||||
|
desc.StringParam(name='path', label='path', description='', value='', uid=[]) # No impact on UID
|
||||||
|
]
|
||||||
|
outputs = [
|
||||||
|
desc.File(name='output', label='Output', description='', value=desc.Node.internalFolder, uid=[])
|
||||||
|
]
|
||||||
|
|
||||||
|
class SampleInputNodeV2(desc.InputNode):
|
||||||
|
""" Changes from V1:
|
||||||
|
* 'path' has been renamed to 'in'
|
||||||
|
"""
|
||||||
|
inputs = [
|
||||||
|
desc.StringParam(name='in', label='path', description='', value='', uid=[]) # No impact on UID
|
||||||
|
]
|
||||||
|
outputs = [
|
||||||
|
desc.File(name='output', label='Output', description='', value=desc.Node.internalFolder, uid=[])
|
||||||
|
]
|
||||||
|
|
||||||
def test_unknown_node_type():
|
def test_unknown_node_type():
|
||||||
"""
|
"""
|
||||||
Test compatibility behavior for unknown node type.
|
Test compatibility behavior for unknown node type.
|
||||||
|
@ -285,37 +305,49 @@ def test_description_conflict():
|
||||||
def test_upgradeAllNodes():
|
def test_upgradeAllNodes():
|
||||||
registerNodeType(SampleNodeV1)
|
registerNodeType(SampleNodeV1)
|
||||||
registerNodeType(SampleNodeV2)
|
registerNodeType(SampleNodeV2)
|
||||||
|
registerNodeType(SampleInputNodeV1)
|
||||||
|
registerNodeType(SampleInputNodeV2)
|
||||||
|
|
||||||
g = Graph('')
|
g = Graph('')
|
||||||
n1 = g.addNewNode("SampleNodeV1")
|
n1 = g.addNewNode("SampleNodeV1")
|
||||||
n2 = g.addNewNode("SampleNodeV2")
|
n2 = g.addNewNode("SampleNodeV2")
|
||||||
|
n3 = g.addNewNode("SampleInputNodeV1")
|
||||||
|
n4 = g.addNewNode("SampleInputNodeV2")
|
||||||
n1Name = n1.name
|
n1Name = n1.name
|
||||||
n2Name = n2.name
|
n2Name = n2.name
|
||||||
|
n3Name = n3.name
|
||||||
|
n4Name = n4.name
|
||||||
graphFile = os.path.join(tempfile.mkdtemp(), "test_description_conflict.mg")
|
graphFile = os.path.join(tempfile.mkdtemp(), "test_description_conflict.mg")
|
||||||
g.save(graphFile)
|
g.save(graphFile)
|
||||||
|
|
||||||
# make SampleNodeV2 an unknown type
|
# make SampleNodeV2 and SampleInputNodeV2 an unknown type
|
||||||
unregisterNodeType(SampleNodeV2)
|
unregisterNodeType(SampleNodeV2)
|
||||||
# replace SampleNodeV1 by SampleNodeV2
|
unregisterNodeType(SampleInputNodeV2)
|
||||||
|
# replace SampleNodeV1 by SampleNodeV2 and SampleInputNodeV1 by SampleInputNodeV2
|
||||||
meshroom.core.nodesDesc[SampleNodeV1.__name__] = SampleNodeV2
|
meshroom.core.nodesDesc[SampleNodeV1.__name__] = SampleNodeV2
|
||||||
|
meshroom.core.nodesDesc[SampleInputNodeV1.__name__] = SampleInputNodeV2
|
||||||
|
|
||||||
# reload file
|
# reload file
|
||||||
g = loadGraph(graphFile)
|
g = loadGraph(graphFile)
|
||||||
os.remove(graphFile)
|
os.remove(graphFile)
|
||||||
|
|
||||||
# both nodes are CompatibilityNodes
|
# both nodes are CompatibilityNodes
|
||||||
assert len(g.compatibilityNodes) == 2
|
assert len(g.compatibilityNodes) == 4
|
||||||
assert g.node(n1Name).canUpgrade # description conflict
|
assert g.node(n1Name).canUpgrade # description conflict
|
||||||
assert not g.node(n2Name).canUpgrade # unknown type
|
assert not g.node(n2Name).canUpgrade # unknown type
|
||||||
|
assert g.node(n3Name).canUpgrade # description conflict
|
||||||
|
assert not g.node(n4Name).canUpgrade # unknown type
|
||||||
|
|
||||||
# upgrade all upgradable nodes
|
# upgrade all upgradable nodes
|
||||||
g.upgradeAllNodes()
|
g.upgradeAllNodes()
|
||||||
|
|
||||||
# only the node with an unknown type has not been upgraded
|
# only the nodes with an unknown type have not been upgraded
|
||||||
assert len(g.compatibilityNodes) == 1
|
assert len(g.compatibilityNodes) == 2
|
||||||
assert n2Name in g.compatibilityNodes.keys()
|
assert n2Name in g.compatibilityNodes.keys()
|
||||||
|
assert n4Name in g.compatibilityNodes.keys()
|
||||||
|
|
||||||
unregisterNodeType(SampleNodeV1)
|
unregisterNodeType(SampleNodeV1)
|
||||||
|
unregisterNodeType(SampleInputNodeV1)
|
||||||
|
|
||||||
def test_conformUpgrade():
|
def test_conformUpgrade():
|
||||||
registerNodeType(SampleNodeV5)
|
registerNodeType(SampleNodeV5)
|
||||||
|
|
Loading…
Add table
Reference in a new issue