def testType( self ) : n = Gaffer.OpHolder() self.assertEqual( n.typeName(), "Gaffer::OpHolder" ) self.failUnless( n.isInstanceOf( Gaffer.ParameterisedHolderComputeNode.staticTypeId() ) ) self.failUnless( n.isInstanceOf( Gaffer.ComputeNode.staticTypeId() ) ) self.failUnless( n.isInstanceOf( Gaffer.DependencyNode.staticTypeId() ) )
def testFileSequenceParameters( self ) : class TestOp( IECore.Op ) : def __init__( self ) : IECore.Op.__init__( self, "", IECore.IntParameter( "result", "", 0 ) ) self.parameters().addParameter( IECore.FileSequenceParameter( "sequence", "", "" ) ) def doOperation( self, args ) : return IECore.IntData( len( self["sequence"].getFileSequenceValue().fileNames() ) ) holder = Gaffer.OpHolder() holder.setParameterised( TestOp() ) holder["parameters"]["sequence"].setValue( "test.###.exr 1-3" ) self.assertEqual( holder["result"].getValue(), 3 )
def testRunTimeTyped( self ) : n = Gaffer.OpHolder() self.assertEqual( n.typeName(), "Gaffer::OpHolder" ) self.assertEqual( IECore.RunTimeTyped.typeNameFromTypeId( n.typeId() ), "Gaffer::OpHolder" ) self.assertEqual( IECore.RunTimeTyped.baseTypeId( n.typeId() ), Gaffer.ParameterisedHolderComputeNode.staticTypeId() )
def testCompute(self): m = IECore.MeshPrimitive.createPlane( IECore.Box2f(IECore.V2f(-1), IECore.V2f(1))) self.failUnless("P" in m) self.failUnless("renamed" not in m) n = Gaffer.OpHolder() opSpec = GafferTest.ParameterisedHolderTest.classSpecification( "primitive/renameVariables", "IECORE_OP_PATHS")[:-1] n.setOp(*opSpec) n["parameters"]["input"].setValue(m) n["parameters"]["names"].setValue( IECore.StringVectorData(["P renamed"])) m2 = n["result"].getValue() self.failUnless("P" not in m2) self.failUnless("renamed" in m2) n["parameters"]["names"].setValue( IECore.StringVectorData(["P renamedAgain"])) self.failUnless("P" not in m2) self.failUnless("renamed" in m2)
def testAffects( self ) : n = Gaffer.OpHolder() opSpec = GafferTest.ParameterisedHolderTest.classSpecification( "primitive/renameVariables", "IECORE_OP_PATHS" )[:-1] n.setOp( *opSpec ) a = n.affects( n["parameters"]["input"] ) self.assertEqual( len( a ), 1 ) self.failUnless( a[0].isSame( n["result"] ) )
def testSerialise( self ) : s = Gaffer.ScriptNode() s["op"] = Gaffer.OpHolder() opSpec = GafferTest.ParameterisedHolderTest.classSpecification( "primitive/renameVariables", "IECORE_OP_PATHS" )[:-1] s["op"].setOp( *opSpec ) ss = s.serialise() s2 = Gaffer.ScriptNode() s2.execute( ss )
def testTaskComparison(self): c = Gaffer.Context() n = Gaffer.OpHolder() t1 = Gaffer.ExecutableNode.Task(n, c) t2 = Gaffer.ExecutableNode.Task() t2.node = n t2.context = c c2 = Gaffer.Context() c2["a"] = 2 t3 = Gaffer.ExecutableNode.Task(n, c2) n2 = Gaffer.OpHolder() t4 = Gaffer.ExecutableNode.Task(n2, c2) self.assertEqual(t1, t1) self.assertEqual(t1, t2) self.assertEqual(t2, t1) self.assertNotEqual(t1, t3) self.assertNotEqual(t3, t1) self.assertNotEqual(t3, t4) self.assertNotEqual(t4, t3)
def testLifetime(self): n = Gaffer.OpHolder() opSpec = GafferTest.ParameterisedHolderTest.classSpecification( "image/grade", "IECORE_OP_PATHS")[:-1] n.setOp(*opSpec) ui = GafferUI.CompoundParameterValueWidget(n.parameterHandler()) w = weakref.ref(ui) del ui self.assertEqual(w(), None)
def testTaskSet(self): c = Gaffer.Context() n = Gaffer.OpHolder() t1 = Gaffer.ExecutableNode.Task(n, c) t2 = Gaffer.ExecutableNode.Task(n, c) self.assertEqual(t1, t2) c2 = Gaffer.Context() c2["a"] = 2 t3 = Gaffer.ExecutableNode.Task(n, c2) n2 = Gaffer.OpHolder() t4 = Gaffer.ExecutableNode.Task(n2, c2) t5 = Gaffer.ExecutableNode.Task(n2, c) s = set([t1, t2, t3, t4, t4, t4, t1, t2, t4, t3, t2]) self.assertEqual(len(s), 3) self.assertEqual(s, set([t1, t3, t4])) self.assertTrue(t1 in s) self.assertTrue(t2 in s) self.assertTrue(t3 in s) self.assertTrue(t4 in s) self.assertFalse(t5 in s)
def testTaskConstructors(self): c = Gaffer.Context() t = Gaffer.ExecutableNode.Task() n = Gaffer.OpHolder() t.node = n t.context = c t2 = Gaffer.ExecutableNode.Task(n, c) t3 = Gaffer.ExecutableNode.Task(t2) self.assertEqual(t.node, n) self.assertEqual(t.context, c) self.assertEqual(t2.node, n) self.assertEqual(t2.context, c) self.assertEqual(t3.node, n) self.assertEqual(t3.context, c)