Exemple #1
0
def testInterface():
    root = _coral.Node("root", None)

    node = _coral.Node("testNode", root)
    attribute = _coral.Attribute("testAttr", node)
    node.addInputAttribute(attribute)
    node1 = _coral.Node("testNode1", node)
    node.addNode(node1)
    assert node1.parent().name() == node.name()
    assert node.nodeAt(0).name() == node1.name()
    assert node.inputAttributeAt(0).name() == attribute.name()
    assert node.containsNode(node1)
    assert len(node.nodes()) == 1
    node.removeNode(node1)
    assert node.containsNode(node1) == False

    attribute1 = _coral.Attribute("testAttr1", root)
    root.addOutputAttribute(attribute1)
    _coral.NetworkManager.connect(attribute1, attribute)

    assert attribute1.isConnectedTo(attribute)
    assert attribute.input().name() == attribute1.name()

    nestedNode = _coral.Node("nestedNode", node)
    assert nestedNode.fullName() == "root.testNode.nestedNode"
Exemple #2
0
def testObjectsLifespan():
    node0 = _coral.Node("node0", None)
    node1 = _coral.Node("node1", node0)

    node0.addNode(node1)

    print "testing children nodes are kept alive by father node"
    del node1
    assert _coral.NetworkManager.objectCount() == 2

    print "testing children nodes are destroyed by father node"
    del node0
    assert _coral.NetworkManager.objectCount() == 0

    print "testing input attributes are destroyed by father node"
    node = _coral.Node("node", None)
    attribute = _coral.Attribute("testAttr", node)
    node.addInputAttribute(attribute)

    del node
    del attribute
    assert _coral.NetworkManager.objectCount() == 0

    print "testing output attributes are destroyed by father node"
    node = _coral.Node("node", None)
    attribute = _coral.Attribute("testAttr", node)
    node.addOutputAttribute(attribute)

    del node
    del attribute
    assert _coral.NetworkManager.objectCount() == 0
Exemple #3
0
def testOwnership():
    n1 = _coral.Node("test", None)
    n2 = _coral.Node("nested", None)

    n1.addNode(n2)
    del n2

    assert n1.nodeAt(0)
Exemple #4
0
def testObjectsHierarchy():
    parentNode = _coral.Node("parentNode", None)
    childNode = _coral.Node("childNode", parentNode)

    parentNode.addNode(childNode)

    assert childNode.fullName() == "parentNode.childNode"

    parentNode.removeNode(childNode)

    assert childNode.fullName() == "childNode"
Exemple #5
0
def testSpecializationBug1():
    n = _coral.Node("n", None)
    a = _coral.Attribute("a", n)
    n.addOutputAttribute(a)
    n._setAttributeAllowedSpecializations(a, ["Spec1", "Spec3"])

    n1 = _coral.Node("n1", None)
    a1 = _coral.Attribute("a1", n1)
    n1.addInputAttribute(a1)
    n1._setAttributeAllowedSpecializations(a1, ["Spec1", "Spec2"])

    _coral.NetworkManager.connect(a, a1)

    assert a1.specialization() == ["Spec1"] and a.specialization() == ["Spec1"]
Exemple #6
0
def testPythonOverloading():
    node = TestNode("node", None)
    parentNode = _coral.Node("testNode", None)
    attr = TestAttribute("attr", parentNode)
    parentNode.addOutputAttribute(attr)

    _coral.NetworkManager.connect(attr, node.inAttr)

    print "testing returned attribute is python subclass"
    assert type(node.inAttr.input()) == TestAttribute

    print "testing python overrides c++ virtual functions"
    attr.value().value = 5
    attr.valueChanged()
    assert node.outAttr.value().value == 5