def test_lastObject_h5cpp(self): fun = sys._getframe().f_code.co_name print("Run: %s.%s() " % (self.__class__.__name__, fun)) fname = "test.h5" nxFile = None eFile = None gname = "testGroup" gtype = "NXentry" fdname = "testField" fdtype = "int64" # file handle FileWriter.writer = H5CppWriter nxFile = FileWriter.create_file(fname, overwrite=True).root() # element file objects eFile = EFile([], None, nxFile) group = nxFile.create_group(gname, gtype) # field = group.create_field(fdname, fdtype) el = Element(self._tfname, self._fattrs2, eFile) el2 = ESymbol(self._fattrs2, el) self.assertEqual(el.tagName, self._tfname) self.assertEqual(el.content, []) self.assertEqual(el._tagAttrs, self._fattrs2) self.assertEqual(el.doc, "") self.assertEqual(el._lastObject(), nxFile) self.assertEqual(el2._lastObject(), None) self.assertEqual(el2.symbols, {}) nxFile.close() os.remove(fname)
def test_store(self): fun = sys._getframe().f_code.co_name print("Run: %s.%s() " % (self.__class__.__name__, fun)) el = Element(self._tfname, self._fattrs) el2 = Element(self._tfname, self._fattrs, el) self.assertEqual(el2.tagName, self._tfname) self.assertEqual(el2.content, []) self.assertEqual(el2._tagAttrs, self._fattrs) self.assertEqual(el2.doc, "") self.assertEqual(el2.store(), None) self.assertEqual(el2.last, el) self.assertEqual(el2.store("<tag/>"), None)
def test_beforeLast(self): fun = sys._getframe().f_code.co_name print("Run: %s.%s() " % (self.__class__.__name__, fun)) el = Element(self._tfname, self._fattrs, None) el2 = Element(self._tfname, self._fattrs, el) el3 = EDimensions(self._fattrs, el2) self.assertEqual(el.tagName, self._tfname) self.assertEqual(el.content, []) self.assertEqual(el._tagAttrs, self._fattrs) self.assertEqual(el.doc, "") self.assertEqual(el2.last, el) self.assertEqual(el2._beforeLast(), None) self.assertEqual(el3._beforeLast(), el) self.assertEqual(el.doc, "")
def test_last_novalue(self): fun = sys._getframe().f_code.co_name print("Run: %s.%s() " % (self.__class__.__name__, fun)) fname = "test.h5" nxFile = None eFile = None # gname = "testGroup" # gtype = "NXentry" # fdname = "testField" # fdtype = "int64" # file handle nxFile = FileWriter.create_file(fname, overwrite=True).root() # element file objects eFile = EFile([], None, nxFile) el = Element(self._tfname, self._fattrs2, eFile) fi = EField(self._fattrs2, el) el2 = EDimensions(self._fattrs4, fi) el3 = EDim(self._attrs3, el2) self.assertEqual(fi.tagName, "field") self.assertEqual(fi.content, []) self.assertEqual(fi._tagAttrs, self._fattrs2) self.assertEqual(fi.doc, "") self.assertEqual(fi._lastObject(), None) self.assertEqual(type(el2.last), EField) self.assertEqual(el2.last.rank, "1") self.assertEqual(el3._beforeLast().lengths, {}) self.assertEqual(fi.lengths, {}) self.assertEqual(fi.rank, "1") nxFile.close() os.remove(fname)
def test_last_h5cpp(self): print("Run: %s.test_last() " % self.__class__.__name__) fname = "test.h5" nxFile = None eFile = None # gname = "testGroup" # gtype = "NXentry" # fdname = "testField" # fdtype = "int64" # file handle FileWriter.writer = H5CppWriter nxFile = FileWriter.create_file(fname, overwrite=True).root() # element file objects eFile = EFile([], None, nxFile) el = Element(self._tfname, self._fattrs2, eFile) fi = EField(self._fattrs3, el) el2 = EDimensions(self._fattrs3, fi) self.assertEqual(fi.tagName, "field") self.assertEqual(fi.content, []) self.assertEqual(fi._tagAttrs, self._fattrs3) self.assertEqual(fi.doc, "") self.assertEqual(fi._lastObject(), None) self.assertEqual(type(el2.last), EField) self.assertEqual(el2.last.rank, "2") nxFile.close() os.remove(fname)
def test_constructor(self): fun = sys._getframe().f_code.co_name print("Run: %s.%s() " % (self.__class__.__name__, fun)) el = Element(self._tfname, self._fattrs) self.assertEqual(el.tagName, self._tfname) self.assertEqual(el._tagAttrs, self._fattrs) self.assertEqual(el.content, []) self.assertEqual(el.doc, "") self.assertEqual(el.last, None)
def test_lastObject_hp5y(self): fun = sys._getframe().f_code.co_name print("Run: %s.%s() " % (self.__class__.__name__, fun)) self._fname = '%s/%s%s.h5' % (os.getcwd(), self.__class__.__name__, fun) FileWriter.writer = H5PYWriter fname = self._fname nxFile = None eFile = None gname = "testGroup" gtype = "NXentry" fdname = "testField" fdtype = "int64" # file handle nxFile = FileWriter.create_file(fname, overwrite=True).root() # element file objects eFile = EFile([], None, nxFile) group = nxFile.create_group(gname, gtype) group.create_field(fdname, fdtype) el = Element(self._tfname, self._fattrs, eFile) el2 = Element(self._tfname, self._fattrs, el) self.assertEqual(el.tagName, self._tfname) self.assertEqual(el.content, []) self.assertEqual(el._tagAttrs, self._fattrs) self.assertEqual(el.doc, "") self.assertEqual(el._lastObject(), nxFile) self.assertEqual(el2._lastObject(), None) nxFile.close() os.remove(fname)
def test_store_last_index2(self): fun = sys._getframe().f_code.co_name print("Run: %s.%s() " % (self.__class__.__name__, fun)) fname = "test.h5" nxFile = None eFile = None # gname = "testGroup" # gtype = "NXentry" # fdname = "testField" # fdtype = "int64" # file handle nxFile = FileWriter.create_file(fname, overwrite=True).root() # element file objects eFile = EFile([], None, nxFile) el = Element(self._tfname, self._fattrs2, eFile) fi = EField(self._fattrs2, el) el2 = EDimensions(self._fattrs3, fi) el3 = EDim(self._attrs5, el2) ds = TstDataSource() ds.value0d = self.__rnd.randint(1, 10) el3.source = ds el4 = EDim(self._attrs4, el2) ds2 = TstDataSource() ds2.value0d = self.__rnd.randint(1, 10) el4.source = ds2 el3.store() el4.store() self.assertEqual(fi.tagName, "field") self.assertEqual(fi.content, []) self.assertEqual(fi._tagAttrs, self._fattrs2) self.assertEqual(fi.doc, "") self.assertEqual(fi._lastObject(), None) self.assertEqual(type(el2.last), EField) self.assertEqual(el2.last.rank, "2") self.assertEqual(el3._beforeLast().lengths, { '1': '%s' % ds.value0d, '2': '%s' % ds2.value0d }) self.assertEqual(fi.lengths, { '1': '%s' % ds.value0d, '2': '%s' % ds2.value0d }) self.assertEqual(fi.rank, "2") nxFile.close() os.remove(fname)
def test_store_beforeLast(self): fun = sys._getframe().f_code.co_name print("Run: %s.%s() " % (self.__class__.__name__, fun)) el = Element(self._tfname, self._fattrs, None) el2 = Element(self._tfname, self._fattrs, el) el3 = ESymbol(self._fattrs, el2) self.assertEqual(el.tagName, self._tfname) self.assertEqual(el.content, []) self.assertEqual(el._tagAttrs, self._fattrs) self.assertEqual(el.doc, "") self.assertEqual(el2.last, el) self.assertEqual(el2._beforeLast(), None) self.assertEqual(el3._beforeLast(), el) self.assertEqual(el3.store([None, "<tag/>", None]), None) self.assertEqual(el.doc, "") self.assertEqual(el3.symbols, {"test": ''}) el3.last.doc = "SYM" self.assertEqual(el3.store(None), None) self.assertEqual(el3.symbols, {"test": 'SYM'}) el2.doc = "SYM2" self.assertEqual(el3.store(None), None) self.assertEqual(el3.symbols, {"test": 'SYM2'})
def test_constructor_default(self): fun = sys._getframe().f_code.co_name print("Run: %s.%s() " % (self.__class__.__name__, fun)) ds = DataSourceFactory(self._fattrs, None) self.assertTrue(isinstance(ds, Element)) self.assertEqual(ds.tagName, "datasource") self.assertEqual(ds._tagAttrs, self._fattrs) self.assertEqual(ds.content, []) self.assertEqual(ds.doc, "") self.assertEqual(ds.last, None) el = Element(self._tfname, self._fattrs) ds = DataSourceFactory(self._fattrs, el) self.assertTrue(isinstance(ds, Element)) self.assertEqual(ds.tagName, "datasource") self.assertEqual(ds._tagAttrs, self._fattrs) self.assertEqual(ds.content, []) self.assertEqual(ds.doc, "") self.assertEqual(ds.last, el)
def test_store_default(self): fun = sys._getframe().f_code.co_name print("Run: %s.%s() " % (self.__class__.__name__, fun)) el = Element(self._tfname, self._fattrs) ds = DataSourceFactory(self._fattrs, el) self.assertTrue(isinstance(ds, Element)) self.assertEqual(ds.tagName, "datasource") self.assertEqual(ds._tagAttrs, self._fattrs) self.assertEqual(ds.content, []) self.assertEqual(ds.doc, "") self.assertEqual(ds.last, el) self.assertEqual(ds.store(["<datasource>", "", "</datasource>"]), None) self.assertEqual(type(ds.last.source), DataSources.DataSource) self.assertTrue(not hasattr(ds.last, "tagAttributes")) atts = {"type": "TANGO"} el = Element(self._tfname, self._fattrs) ds = DataSourceFactory(atts, el) self.assertTrue(isinstance(ds, Element)) self.assertEqual(ds.tagName, "datasource") self.assertEqual(ds._tagAttrs, atts) self.assertEqual(ds.content, []) self.assertEqual(ds.doc, "") self.assertEqual(ds.last, el) self.assertEqual(ds.store(["<datasource>", "", "</datasource>"]), None) self.assertEqual(type(ds.last.source), DataSources.DataSource) self.assertTrue(not hasattr(ds.last, "tagAttributes")) atts = {"type": "CLIENT"} el = Element(self._tfname, self._fattrs) ds = DataSourceFactory(atts, el) self.assertTrue(isinstance(ds, Element)) self.assertEqual(ds.tagName, "datasource") self.assertEqual(ds._tagAttrs, atts) self.assertEqual(ds.content, []) self.assertEqual(ds.doc, "") self.assertEqual(ds.last, el) self.assertEqual(ds.setDataSources(DataSourcePool()), None) self.myAssertRaise(DataSourceSetupError, ds.store, ["<datasource>", "", "</datasource>"]) self.assertTrue(not hasattr(ds.last, "tagAttributes")) atts = {"type": "CLIENT"} el = Element(self._tfname, self._fattrs) ds = DataSourceFactory(atts, el) self.assertTrue(isinstance(ds, Element)) self.assertEqual(ds.tagName, "datasource") self.assertEqual(ds._tagAttrs, atts) self.assertEqual(ds.content, []) self.assertEqual(ds.doc, "") self.assertEqual(ds.last, el) self.assertEqual(ds.setDataSources(DataSourcePool()), None) self.myAssertRaise( DataSourceSetupError, ds.store, ["<datasource type='CLIENT'>", "<record/>", "</datasource>"]) self.assertTrue(not hasattr(ds.last, "tagAttributes")) atts = {"type": "CLIENT"} name = "myRecord" el = Element(self._tfname, self._fattrs) ds = DataSourceFactory(atts, el) self.assertTrue(isinstance(ds, Element)) self.assertEqual(ds.tagName, "datasource") self.assertEqual(ds._tagAttrs, atts) self.assertEqual(ds.content, []) self.assertEqual(ds.doc, "") self.assertEqual(ds.last, el) self.assertEqual(ds.setDataSources(DataSourcePool()), None) self.assertEqual( ds.store([ "<datasource type='CLIENT'>", '<record name="%s"/>' % name, "</datasource>" ]), None) self.assertEqual(type(ds.last.source), ClientSource.ClientSource) self.assertEqual(ds.last.source.name, name) self.assertEqual(ds.last.source.name, name) self.assertEqual(ds.last.source.__str__(), " CLIENT record %s" % (name)) self.assertTrue(not hasattr(ds.last, "tagAttributes")) atts = {"type": "CLIENT"} name = "myRecord" el = EField(self._fattrs, None) ds = DataSourceFactory(atts, el) self.assertTrue(isinstance(ds, Element)) self.assertEqual(ds.tagName, "datasource") self.assertEqual(ds._tagAttrs, atts) self.assertEqual(ds.content, []) self.assertEqual(ds.doc, "") self.assertEqual(ds.last, el) self.assertEqual(ds.setDataSources(DataSourcePool()), None) self.assertEqual( ds.store([ "<datasource type='CLIENT'>", '<record name="%s"/>' % name, "</datasource>" ]), None) self.assertEqual(type(ds.last.source), ClientSource.ClientSource) self.assertEqual(ds.last.source.name, name) self.assertEqual(ds.last.source.name, name) self.assertEqual(ds.last.source.__str__(), " CLIENT record %s" % (name)) self.assertEqual(len(ds.last.tagAttributes), 1) self.assertEqual( ds.last.tagAttributes["nexdatas_source"], ('NX_CHAR', '<datasource type=\'CLIENT\'><record name="myRecord"/>' '</datasource>')) atts = {"type": "CLIENT"} name = "myRecord" # wjson = json.loads('{"datasources": # {"CL":"DataSources.ClientSource"}}') gjson = json.loads('{"data":{"myRecord":"1"}}') el = EField(self._fattrs, None) ds = DataSourceFactory(atts, el) self.assertTrue(isinstance(ds, Element)) self.assertEqual(ds.tagName, "datasource") self.assertEqual(ds._tagAttrs, atts) self.assertEqual(ds.content, []) self.assertEqual(ds.doc, "") self.assertEqual(ds.last, el) self.assertEqual(ds.setDataSources(DataSourcePool()), None) self.assertEqual( ds.store([ "<datasource type='CLIENT'>", '<record name="%s"/>' % name, "</datasource>" ], gjson), None) self.assertEqual(type(ds.last.source), ClientSource.ClientSource) self.assertEqual(ds.last.source.name, name) self.assertEqual(ds.last.source.name, name) self.assertEqual(ds.last.source.__str__(), " CLIENT record %s" % (name)) self.assertEqual(len(ds.last.tagAttributes), 1) self.assertEqual( ds.last.tagAttributes["nexdatas_source"], ('NX_CHAR', '<datasource type=\'CLIENT\'><record name="myRecord"/>' '</datasource>')) dt = ds.last.source.getData() self.checkData(dt, "SCALAR", '1', "DevString", []) atts = {"type": "PYEVAL"} name = "myRecord" # wjson = json.loads( # '{"datasources":{"CL":"ClientSource.ClientSource"}}') gjson = json.loads('{"data":{"myRecord":1123}}') el = EField(self._fattrs, None) ds = DataSourceFactory(atts, el) self.assertTrue(isinstance(ds, Element)) self.assertEqual(ds.tagName, "datasource") self.assertEqual(ds._tagAttrs, atts) self.assertEqual(ds.content, []) self.assertEqual(ds.doc, "") self.assertEqual(ds.last, el) self.assertEqual(ds.setDataSources(DataSourcePool()), None) self.assertEqual( ds.store([ "<datasource type='PYEVAL'>", """ <datasource type="CLIENT" name="myclient"> <record name="%s"/> </datasource> <result> ds.result = ds.myclient + 1 </result> """ % name, "</datasource>" ], gjson), None) self.assertEqual(type(ds.last.source), PyEvalSource.PyEvalSource) self.assertEqual(ds.last.source.__str__(), " PYEVAL \nds.result = ds.myclient + 1\n") self.assertEqual(len(ds.last.tagAttributes), 1) self.assertEqual(ds.last.tagAttributes["nexdatas_source"], ('NX_CHAR', '<datasource type=\'PYEVAL\'>\n' '<datasource type="CLIENT" name="myclient">\n ' '<record name="myRecord"/>\n</datasource>\n' '<result>\nds.result = ds.myclient + 1\n</result>\n' '</datasource>')) dt = ds.last.source.getData() self.checkData(dt, "SCALAR", 1124, "DevLong64", [])