def setUpClass(cls): with cls._lock: if cls._instances == 0: import tempfile cls._tmpdir = tempfile.mkdtemp() setenv("devtree_path", cls._tmpdir) cls._instances += 1
def setUpClass(cls): from MDSplus import setenv with cls.lock: if cls.instances == 0: import tempfile cls.tmpdir = tempfile.mkdtemp() setenv("%s_path" % cls.tree, cls.tmpdir) cls.instances += 1
def write(self): count = 100 def thread(test, name, node, count): i = -1 max_period = 0 last = start = time.time() for i in range(count): data = Float32([i * 10 + 1]) dim = Float32([last]) node.makeSegment(dim[0], dim[0], data, dim) end = time.time() max_period = max(end - last, max_period) last = end i += 1 test.assertEqual(i, count) print("%s: rate=%f, max_period=%f" % (name, i / (end - start), max_period)) server, server_port = self._setup_mdsip('ACTION_SERVER', 'ACTION_PORT', 7020 + self.index, True) tempdir = tempfile.mkdtemp() try: svr, svr_log = self._start_mdsip(server, server_port, 'tcp') try: con = Connection(server) def check(line, *args): sts = con.get(line, *args) self.assertTrue(sts & 1, "error %d in '%s'" % (sts, line)) check("setenv('test_path='//$)", tempdir) for line in ( "TreeOpenNew('test', 1)", "TreeAddNode('EV1', _, 6)", "TreeAddNode('EV2', _, 6)", "TreeWrite()", "TreeClose()", ): check(line) setenv("test_path", "%s::%s" % (server, tempdir)) tree = Tree("test", 1) _common.TestThread.assertRun( 100, _common.TestThread('EV1', thread, self, 'EV1', tree.EV1.copy(), count), _common.TestThread('EV2', thread, self, 'EV2', tree.EV2.copy(), count), ) finally: if svr_log: svr_log.close() self._stop_mdsip((svr, server)) finally: shutil.rmtree(tempdir, ignore_errors=False, onerror=None)
def thick(self): def testnci(thick, local, con, nci): l = local.S.__getattribute__(nci) t = thick.S.__getattribute__(nci) if nci.endswith("_nids"): l, t = str(l), str(t) try: c = str(con.get("getnci(getnci(S,$),'nid_number')", nci)) except TreeNNF: c = '[]' else: c = con.get("getnci(S,$)", nci) try: self.assertEqual(t, c) self.assertEqual(t, l) except: print(nci, t, l, c) raise server, server_port = self._setup_mdsip('ACTION_SERVER', 'ACTION_PORT', 7000 + self.index, True) svr, svr_log = self._start_mdsip(server, server_port, 'thick') try: con = Connection(server) self.assertEqual( con.get("zero([1,1,1,1,1,1,1,1],1)").tolist(), [[[[[[[[0]]]]]]]]) with Tree(self.tree, -1, "new") as local: local.addNode(self.treesub, "SUBTREE") s = local.addNode("S", "SIGNAL") s.addTag("tagS") s.record = ADD(Float32(1), Float32(2)) t = local.addNode("T", "TEXT") t.addNode("TT", "TEXT").addTag("tagTT") t.record = t.TT t.TT = "recTT" local.write() with Tree(self.treesub, -1, "new") as sub: sub.addNode("OK") sub.write() local.normal() Tree.setCurrent(self.tree, 7) setenv("%s_path" % self.tree, "%s::" % server) print(con.get("getenv($//'_path')", self.tree)) con.get("TreeShr->TreeOpen(ref($),val($),val(1))", self.tree, -1) thick = Tree(self.tree, -1) thick.createPulse(1) thick1 = Tree(self.tree, 1) self.assertEqual( getattr(local, self.treesub.upper()).OK.nid, getattr(thick1, self.treesub.upper()).OK.nid) local_filename = local.getFileName() thick_filename = thick.getFileName() self.assertTrue("::" in thick_filename, thick_filename) self.assertTrue(local_filename, thick_filename.split("::", 1)[1]) """ TreeTurnOff / TreeTurnOn """ thick.S.on = False self.assertEqual(local.S.on, False) thick.S.on = True self.assertEqual(local.S.on, True) """ TreeSetCurrentShotId / TreeGetCurrentShotId """ Tree.setCurrent(self.tree, 1) self.assertEqual(Tree.getCurrent(self.tree), 1) """ TreeGetRecord / TreeSetRecord """ self.assertEqual(str(local.S.record), "1. + 2.") self.assertEqual(str(thick.S.record), "1. + 2.") thick.S.record = ADD(Float32(2), Float32(4)) self.assertEqual(str(local.S.record), "2. + 4.") self.assertEqual(str(thick.S.record), "2. + 4.") self.assertEqual(str(local.T.record), str(thick.T.record)) """ GetDefaultNid / SetDefaultNid """ self.assertEqual(thick.getDefault(), thick.top) thick.setDefault(thick.S) self.assertEqual(thick.getDefault(), thick.top.S) thick.setDefault(thick.top) """ FindNodeWildRemote """ self.assertEqual(str(thick.getNodeWild("T*")), str(local.getNodeWild("T*"))) """ FindTagWildRemote """ self.assertEqual(thick.findTags("*"), local.findTags("*")) """ nci """ thick.S.write_once = True self.assertEqual(thick.S.write_once, True) for nci in ( 'on', 'depth', 'usage_str', 'dtype', 'length', 'rlength', 'fullpath', 'minpath', 'member_nids', 'children_nids', 'rfa', 'write_once', ): testnci(thick, local, con, nci) """ new stuff """ self.assertEqual(local.getFileName(), con.get("treefilename($,-1)", self.tree)) finally: if svr_log: svr_log.close() self._stop_mdsip((svr, server))
def _setenv(cls,name,value): value = str(value) cls.env[name] = value cls.envx[name] = value setenv(name,value)