def read_direct_reverse_deps_for_owner(self, brl_user): dbcol = self.mongo_server_store.db[self.REVERSE_DEPENDENCIES_ST] # all brl_user deps (for all his blocks) docs = dbcol.find({LengthySerializedBlockVersion.SERIAL_OWNER_KEY: brl_user}) for doc in docs: obj = ReverseDependency.deserialize(doc) yield obj
def read_direct_reverse_deps_for_brl_block(self, brl_block): block_version = LengthySerializedBlockVersion(brl_block, -1) dbcol = self.mongo_server_store.db[self.REVERSE_DEPENDENCIES_ST] tmp = block_version.serialize() # remove time key from query del tmp[LengthySerializedBlockVersion.SERIAL_VERSION_KEY] docs = dbcol.find(tmp) for doc in docs: obj = ReverseDependency.deserialize(doc) yield obj
def read_direct_reverse_dependencies(self, block_version): block_version = LengthySerializedBlockVersion(block_version.block, block_version.time) dbcol = self.mongo_server_store.db[self.REVERSE_DEPENDENCIES_ST] doc = dbcol.find_one(block_version.serialize()) if not doc: raise NotInStoreException("No %s found with _id = %s" % (self.REVERSE_DEPENDENCIES_ST, block_version)) obj = ReverseDependency.deserialize(doc) return obj
def serialize_and_deserialize_test(self): tmp = LengthySerializedBlockVersion.loads("creator/block(owner/branch):2") serial = tmp.serialize() tmp2 = LengthySerializedBlockVersion.deserialize(serial) self.assertEquals(tmp, tmp2) tmp = ReverseDependency(tmp, [tmp2, tmp]) serial = tmp.serialize() self.assertEquals(serial[ReverseDependency.SERIAL_DEPS_ON_KEY][0] \ [LengthySerializedBlockVersion.SERIAL_NAME_KEY], "block") tmp2 = ReverseDependency.deserialize(serial) self.assertEquals(tmp, tmp2) self.assertIsInstance(tmp2.depends_on_version[0], LengthySerializedBlockVersion)
def serialize_and_deserialize_test(self): tmp = LengthySerializedBlockVersion.loads( "creator/block(owner/branch):2") serial = tmp.serialize() tmp2 = LengthySerializedBlockVersion.deserialize(serial) self.assertEquals(tmp, tmp2) tmp = ReverseDependency(tmp, [tmp2, tmp]) serial = tmp.serialize() self.assertEquals(serial[ReverseDependency.SERIAL_DEPS_ON_KEY][0] \ [LengthySerializedBlockVersion.SERIAL_NAME_KEY], "block") tmp2 = ReverseDependency.deserialize(serial) self.assertEquals(tmp, tmp2) self.assertIsInstance(tmp2.depends_on_version[0], LengthySerializedBlockVersion)