Пример #1
0
    def test_lots_of_nodes(self):
        graph = Graph()
        actions = ["RenderAction", "ComprenderAction"]
        scenefiles = ["MayaFile", "NukeFile", "HoudiniFile"]

        nodes = {}
        nodes["scenes"] = []
        nodes["actions"] = []

        numNodes = 2000
        for x in range(0, numNodes):
            r = random()
            if nodes["scenes"] and r > 0.5:
                scene = choice(nodes["scenes"])
                actiontype = choice(scene.knownActions())
                node = scene.createAction(actiontype, "bar")
                nodes["actions"].append(node)
            else:
                node = graph.createNode(choice(scenefiles), "foo")
                nodes["scenes"].append(node)

        self.assertEqual(
            len(nodes["actions"]) + len(nodes["scenes"]), numNodes)
        self.assertEqual(len(graph.nodes), numNodes)
        for nodename in graph.nodes:
            self.assertEqual(nodename, graph.nodes[nodename].name)

        json1 = graph.serialize()
        self.assertTrue(json.dumps(json1))
        revivedGraph = Graph.deserialize(json1)
        self.assertEqual(graph, revivedGraph)