Beispiel #1
0
 def test_buildObject(self):
     "Check processing objects can be instantiated"
     for objectType in self._get_objectTypes():
         if "Store" in objectType:
             # Don't build Stores - creates empty BDB files
             continue
         config = self._get_configFromObjectType(objectType)
         try:
             obj = buildObject(self.session,
                               objectType,
                               (config, self.server))
         except Exception as e:
             self.assertIsInstance(e,
                                   (ConfigFileException,
                                    NotImplementedError,
                                    MissingDependencyException),
                                   "When failing to buildObject of type "
                                   "'{0}' {1} is raised. Should be one of: "
                                   "ConfigFileException, "
                                   "NotImplementedError, "
                                   "MissingDependencyException"
                                   "".format(objectType,
                                             e.__class__.__name__)
                                   )
         else:
             modName = objectType.split('.')[1]
             expCls = getattr(baseObjects, modName[0].upper() + modName[1:])
             self.assertIsInstance(obj, expCls)
    def fetch_resultSet(self, session, id_):
        if (self.idNormalizer is not None):
            sid = self.idNormalizer.process_string(session, id_)
        elif isinstance(id_, unicode):
            sid = id_.encode('utf-8')
        else:
            sid = str(id_)
        query = ("SELECT class, data FROM {0} WHERE identifier = %s;"
                 "".format(self.table)
                 )
        res = self._query(query, (sid,))
        try:
            cl, data = res[0]
        except IndexError:
            raise ObjectDoesNotExistException('%s/%s' % (self.id, sid))
        ndata = self._unescape_data(data)
        rset = dynamic.buildObject(session, cl, [[]])
        rset.deserialize(session, ndata)
        rset.id = id_

        # Update expires
        now = datetime.utcnow()
        if (rset.expires):
            expiry_delta = timedelta(rset.expires)
        else:
            expiry_delta = timedelta(self.get_default(session, 'expires', 600))
        rset.timeExpires = expires = now + expiry_delta
        query = ("UPDATE {0} SET timeAccessed = %s, expires = %s "
                 "WHERE identifier = %s;".format(self.table)
                 )
        self._query(query, (now, expires, sid))
        return rset
 def fetch_resultSet(self, session, id):
     data = self.fetch_data(session, id)
     if (data):
         (cl, srlz) = data.split('||', 1)
         rset = dynamic.buildObject(session, cl, [])            
         rset.deserialise(session, srlz)
         return rset
     else:
         return SimpleResultSet(session, [], id)
Beispiel #4
0
 def fetch_resultSet(self, session, id):
     data = self.fetch_data(session, id)
     if (data):
         (cl, srlz) = data.split('||', 1)
         rset = dynamic.buildObject(session, cl, [])
         rset.deserialise(session, srlz)
         return rset
     else:
         return SimpleResultSet(session, [], id)
Beispiel #5
0
    def _deserialise(self, session, data, size, id):
        (cl, srlz) = data.split('||', 1)
        rset = dynamic.buildObject(session, cl, [[]])
        # rset = SimpleResultSet(session, [])
        if self.get_setting(session, 'compress', 1):
            # gunzip
            srlz = srlz.decode('string_escape')
            buff = StringIO.StringIO(srlz)
            zfile = gzip.GzipFile(mode='rb', fileobj=buff)
            srlz = zfile.read()
            zfile.close()
            buff.close()

        rset.deserialise(session, srlz)
        return rset
Beispiel #6
0
    def _deserialise(self, session, data, size, id_):
        (cl, srlz) = data.split('||', 1)
        rset = dynamic.buildObject(session, cl, [[]])
        # rset = SimpleResultSet(session, [])
        if self.get_setting(session, 'compress', 1):
            # gunzip
            srlz = srlz.decode('string_escape')
            buff = StringIO.StringIO(srlz)
            zfile = gzip.GzipFile(mode='rb', fileobj=buff)
            srlz = zfile.read()
            zfile.close()
            buff.close()

        rset.deserialise(session, srlz)
        return rset
Beispiel #7
0
    def fetch_resultSet(self, session, id):
        self._openContainer(session)

        sid = str(id)
        if self.idNormalizer is not None:
            sid = self.idNormalizer.process_string(session, sid)
        query = "SELECT class, data FROM %s WHERE identifier = '%s';" % (self.table, sid)
        res = self._query(query)
        try:
            rdict = res.dictresult()[0]
        except IndexError:
            raise ObjectDoesNotExistException("%s/%s" % (self.id, sid))

        data = rdict["data"]
        try:
            ndata = pg.unescape_bytea(data)
        except:
            # insufficient PyGreSQL version
            ndata = data.replace("\\'", "'")

        ndata = ndata.replace("\\000", "\x00")
        ndata = ndata.replace("\\012", "\n")
        # data is res.dictresult()
        cl = rdict["class"]
        rset = dynamic.buildObject(session, cl, [[]])
        rset.deserialize(session, ndata)
        rset.id = id

        # Update expires
        now = time.time()
        nowStr = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(now))
        expires = now + self.get_default(session, "expires", 600)
        rset.timeExpires = expires
        expiresStr = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(expires))

        query = "UPDATE %s SET timeAccessed = '%s', expires = '%s' WHERE identifier = '%s';" % (
            self.table,
            nowStr,
            expiresStr,
            sid,
        )
        self._query(query)
        return rset
    def fetch_resultSet(self, session, id):
        self._openContainer(session)

        sid = str(id)
        if (self.idNormalizer != None):
            sid = self.idNormalizer.process_string(session, sid)
        query = "SELECT class, data FROM %s WHERE identifier = '%s';" % (
            self.table, sid)
        res = self._query(query)
        try:
            rdict = res.dictresult()[0]
        except IndexError:
            raise ObjectDoesNotExistException('%s/%s' % (self.id, sid))

        data = rdict['data']
        try:
            ndata = pg.unescape_bytea(data)
        except:
            # insufficient PyGreSQL version
            ndata = data.replace("\\'", "'")

        ndata = ndata.replace('\\000', '\x00')
        ndata = ndata.replace('\\012', '\n')
        # data is res.dictresult()
        cl = rdict['class']
        rset = dynamic.buildObject(session, cl, [[]])
        rset.deserialize(session, ndata)
        rset.id = id

        # Update expires
        now = time.time()
        nowStr = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(now))
        expires = now + self.get_default(session, 'expires', 600)
        rset.timeExpires = expires
        expiresStr = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(expires))

        query = "UPDATE %s SET timeAccessed = '%s', expires = '%s' WHERE identifier = '%s';" % (
            self.table, nowStr, expiresStr, sid)
        self._query(query)
        return rset
Beispiel #9
0
 def test_buildObject(self):
     "Check processing objects can be instantiated"
     for objectType in self._get_objectTypes():
         if "Store" in objectType:
             # Don't build Stores - creates empty BDB files
             continue
         config = self._get_configFromObjectType(objectType)
         try:
             obj = buildObject(self.session, objectType,
                               (config, self.server))
         except Exception as e:
             self.assertIsInstance(
                 e, (ConfigFileException, NotImplementedError,
                     MissingDependencyException),
                 "When failing to buildObject of type "
                 "'{0}' {1} is raised. Should be one of: "
                 "ConfigFileException, "
                 "NotImplementedError, "
                 "MissingDependencyException"
                 "".format(objectType, e.__class__.__name__))
         else:
             modName = objectType.split('.')[1]
             expCls = getattr(baseObjects, modName[0].upper() + modName[1:])
             self.assertIsInstance(obj, expCls)