def testDefaultExpression(self): # create opholder and check the default expression we asked for works fnOH = IECoreNuke.FnOpHolder.create("op", "add", 1) self.assertEqual(fnOH.node().knob("parm_a").toScript(), '{"frame * 2"}') self.failUnless(fnOH.node().knob("parm_a").isAnimated()) self.assertEqual(nuke.frame(), 1) self.assertEqual(fnOH.node().knob("parm_a").getValue(), 2) # remove the expression, cut and paste the node, and make sure # it doesn't reappear fnOH.node().knob("parm_a").clearAnimated() self.failIf(fnOH.node().knob("parm_a").isAnimated()) nuke.nodeCopy("test/IECoreNuke/parameterisedHolder.nk") nuke.scriptClear() n = nuke.nodePaste("test/IECoreNuke/parameterisedHolder.nk") fnOH = IECoreNuke.FnOpHolder(n) self.assertEqual(fnOH.node().knob("parm_a").toScript(), "2")
def testClassParameterSetClassAndValues(self): fnOH = IECoreNuke.FnOpHolder.create("test", "classParameterTest", 1) with fnOH.parameterModificationContext() as parameterised: parameterised["cp"].setClass("maths/multiply", 2) parameterised["cp"]["a"].setNumericValue(10) parameterised["cp"]["a"].setNumericValue(20) self.__checkParameterKnobs(parameterised.parameters(), fnOH.node()) nuke.nodeCopy("test/IECoreNuke/parameterisedHolder.nk") nuke.scriptClear() n = nuke.nodePaste("test/IECoreNuke/parameterisedHolder.nk") fnOH = IECoreNuke.FnOpHolder(n) parameterised2 = fnOH.getParameterised()[0] self.assertEqual(parameterised.parameters().getValue(), parameterised2.parameters().getValue())