Пример #1
0
    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)
Пример #2
0
 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)
Пример #3
0
    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, "")
Пример #4
0
    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)
Пример #5
0
    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)
Пример #6
0
 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)
Пример #7
0
    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)
Пример #8
0
    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)
Пример #9
0
    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'})
Пример #10
0
    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)
Пример #11
0
    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", [])