def test(self): plane = GafferScene.Plane() plane["sets"].setValue("a") with IECore.CapturingMessageHandler() as mh: with GafferSceneTest.ContextSanitiser(): with Gaffer.Context() as c: c["scene:path"] = IECore.InternedStringVectorData( ["plane"]) plane["out"]["globals"].getValue() c["scene:setName"] = IECore.InternedStringData("a") plane["out"]["set"].getValue() plane["out"]["object"].getValue() for message in mh.messages: self.assertEqual(message.level, mh.Level.Warning) self.assertEqual(message.context, "ContextSanitiser") self.assertEqual([m.message for m in mh.messages], [ "scene:path in context for Plane.out.globals computeNode:hash", "scene:path in context for Plane.out.globals computeNode:hash", "scene:path in context for Plane.out.set computeNode:hash", "scene:path in context for Plane.out.set computeNode:hash", "scene:setName in context for Plane.out.object computeNode:hash", "scene:setName in context for Plane.out.object computeNode:hash", ])
def setUp( self ) : GafferImageTest.ImageTestCase.setUp( self ) sanitiser = GafferSceneTest.ContextSanitiser() sanitiser.__enter__() self.addCleanup( sanitiser.__exit__, None, None, None )
def __writeScene(self, script, args): import GafferDispatch import GafferScene import GafferSceneTest scene = script.descendant(args["scene"].value) if isinstance(scene, GafferScene.Render): scene = scene["task"] elif isinstance(scene, Gaffer.Node): scene = next((x for x in scene.children(GafferScene.ScenePlug)), None) if scene is None: IECore.msg(IECore.Msg.Level.Error, "stats", "Scene \"%s\" does not exist" % args["scene"].value) return contextSanitiser = _NullContextManager() if args["contextSanitiser"].value: contextSanitiser = GafferSceneTest.ContextSanitiser() def computeScene(): with self.__context(script, args) as context: for frame in self.__frames(script, args): context.setFrame(frame) if isinstance(scene, GafferDispatch.TaskNode.TaskPlug): context[ "scene:render:sceneTranslationOnly"] = IECore.BoolData( True) scene.execute() else: if args["sets"]: GafferScene.SceneAlgo.sets(scene, args["sets"]) else: GafferSceneTest.traverseScene(scene) if args["preCache"].value: computeScene() memory = _Memory.maxRSS() with _Timer() as sceneTimer: with self.__performanceMonitor or _NullContextManager( ), self.__contextMonitor or _NullContextManager( ), self.__vtuneMonitor or _NullContextManager(): with contextSanitiser: computeScene() self.__timers["Scene generation"] = sceneTimer self.__memory["Scene generation"] = _Memory.maxRSS() - memory