def update_field(self, collection, obj_id, field_name, value): # TODO: Add update_if_current check? query = {'_id': serialize(obj_id)} update_st = {field_name: serialize(value)} return self._update_collection(collection, query, {"$set": update_st}, upsert=False, trx_record=False)
def test_address_table(self): a = AddressTable(ID((1, 3))) a.create(CellName('f2.h'), ID((1, 3, 18)), 2) s = serialize(a) #print "S: " + str(s) b = AddressTable.deserialize(s, ID((1, 3))) #print "B: " + str(b) self.assertEqual(a, b)
def test_serialize(self): r = Renames() r[CellName('a.h')] = CellName('b.h') r[CellName('b.h')] = CellName('c.h') s = serialize(r) d = Renames.deserialize(s) self.assertIsInstance(d, Renames) self.assertEqual(r, d)
def test_address_table(self): a = AddressTable(ID((1, 3))) a.create(CellName("f2.h"), ID((1, 3, 18)), 2) s = serialize(a) # print "S: " + str(s) b = AddressTable.deserialize(s, ID((1, 3))) # print "B: " + str(b) self.assertEqual(a, b)
def test_time_base_map(self): t = TimeBaseMap() mvt = BlockVersionTable([BlockVersion.loads("user/block: 3")]) t.append(0, mvt) t.append(1, mvt) s = serialize(t) #print "TIME BASE:"+str(s) t2 = TimeBaseMapDeserializer(BlockVersionTable).deserialize(s) self.assertEqual(t, t2)
def test_time_base_map(self): t = TimeBaseMap() mvt = BlockVersionTable([BlockVersion.loads("user/block: 3")]) t.append(0, mvt) t.append(1, mvt) s = serialize(t) # print "TIME BASE:"+str(s) t2 = TimeBaseMapDeserializer(BlockVersionTable).deserialize(s) self.assertEqual(t, t2)
def test_bii_response(self): m = BiiResponse() m.debug("Manamana tu tu tururu") m.info("Info bla bla bla") m.warn("Doh!!") m.error("Mhhhhh") s = serialize(m) #print str(s) m2 = BiiResponse.deserialize(s) #print str(m2) #print str(m2.serialize()) self.assertEqual(m, m2)
def read(self, object_id, collection, fields=None, deserializer=None): '''fields: if specified only this fields are fetched deserializer: if specified use this instead of generic collection deserializer if False, dict is returned''' logger.debug("**FIND ONE: %s - %s" % (str(collection), str(object_id))) dbcol = self.db[collection] s = serialize(object_id) projection = dict([(name, 1) for name in fields]) if fields else None doc = dbcol.find_one({"_id": s}, projection) if not doc: raise NotInStoreException("No %s found with _id = %s" % (collection, object_id)) deserializer_method = self._get_deserializer_method(deserializer, collection) obj = deserializer_method(doc) txn_k = update_if_current.SERIAL_TXN_COUNTER_KEY # Requires update_if_current check if txn_k in doc and not isinstance(obj, dict): setattr(obj, txn_k, doc[txn_k]) return obj
def read(self, object_id, collection, fields=None, deserializer=None): '''fields: if specified only this fields are fetched deserializer: if specified use this instead of generic collection deserializer if False, dict is returned''' logger.debug("**FIND ONE: %s - %s" % (str(collection), str(object_id))) dbcol = self.db[collection] s = serialize(object_id) projection = dict([(name, 1) for name in fields]) if fields else None doc = dbcol.find_one({"_id": s}, projection) if not doc: raise NotInStoreException("No %s found with _id = %s" % (collection, object_id)) deserializer_method = self._get_deserializer_method( deserializer, collection) obj = deserializer_method(doc) txn_k = update_if_current.SERIAL_TXN_COUNTER_KEY # Requires update_if_current check if txn_k in doc and not isinstance(obj, dict): setattr(obj, txn_k, doc[txn_k]) return obj
def delete_multi(self, values, collection): dbcol = self.db[collection] serialized = [serialize(value) for value in values] dbcol.remove({"_id": {"$in": serialized}})
def prepare_response(self, return_value, biiresponse=None): result = {"return": serializer.serialize(return_value)} if biiresponse is not None: result['info'] = serialize(biiresponse) ret = self.bsonplugin.response_bson(result) return ret
def test_bii_type(self): b1 = BiiType(SOUND) s1 = serialize(b1) b2 = BiiType.deserialize(s1) self.assertEqual(b1, b2)
def test_message(self): m = Message("7 horses comes from Bonanza, apetecandemor", DEBUG) s = serialize(m) m2 = Message.deserialize(s) self.assertEqual(m, m2)
def create(self, ID, value, table): self._generic_write(table, ID, encode_serialized_value(serialize(value)), 'id', 'blob', 'INSERT')
def delete(self, value, collection): dbcol = self.db[collection] dbcol.remove({"_id": serialize(value)})
def serialize(self): return serialize(list(self)) # remove type, then serialize
def upsert(self, ID, value, table): serial_value = serialize(value) self._generic_write(table, ID, encode_serialized_value(serial_value), 'id', 'blob', 'INSERT OR REPLACE')
def update(self, ID, value, table): self._generic_write(table, ID, encode_serialized_value(serialize(value)), 'id', 'blob', 'REPLACE')
def test_brl_block(self): b = BRLBlock('user/user/block/master', 1) s = serialize(b) b2 = BRLBlock.deserialize(s) self.assertEqual(b, b2)
def abort_response(self, return_code, return_string, biiresponse=None): result = {"return": return_string} if biiresponse is not None: result['info'] = serialize(biiresponse) return self.bsonplugin.abort_with_bson(code=return_code, data=result)
def test_renames(self): r = Renames({"old.h": "new.h", "old2.h": "old3.h"}) s = serialize(r) #print "S RENAMES: " + str(s) r2 = Renames.deserialize(s) self.assertEqual(r, r2)
def serialize(self): if self.value: return (serialize(self.source), serialize(self.target), serialize(self.value)) else: return (serialize(self.source), serialize(self.target))
def test_periodicity(self): elem = TimePeriod("YEAR", 2) serial = serializer.serialize(elem) elem2 = TimePeriod.deserialize(serial) self.assertEqual(elem, elem2)
def serialize(self): return serialize(self.values())