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 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 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 setUp(self):
        self.store = MongoServerStore(self.conn, self.__class__.__name__)
        self.store = ReverseDependencyMongoStore(self.store)
        bver = BlockVersion.loads("creator/block(owner/branch):2")
        self.bv2 = BlockVersion.loads("creator2/block(owner2/branch):2")
        self.bv3 = BlockVersion.loads("creator3/block(owner3/branch):3")

        self.reverse = ReverseDependency(bver)
        self.reverse.add_dependant_version(self.bv2)
        self.reverse.add_dependant_version(self.bv3)

        self.store.upsert_reverse_dependencies(self.reverse)

        # Other version of same block
        bver2 = BlockVersion.loads("creator/block(owner/branch):3")
        self.reverse2 = ReverseDependency(bver2)
        self.reverse2.add_dependant_version(self.bv2)
        self.reverse2.add_dependant_version(self.bv3)

        self.store.upsert_reverse_dependencies(self.reverse2)
Beispiel #6
0
    def setUp(self):
        self.store = MongoServerStore(self.conn, self.__class__.__name__)
        self.store = ReverseDependencyMongoStore(self.store)
        bver = BlockVersion.loads("creator/block(owner/branch):2")
        self.bv2 = BlockVersion.loads("creator2/block(owner2/branch):2")
        self.bv3 = BlockVersion.loads("creator3/block(owner3/branch):3")

        self.reverse = ReverseDependency(bver)
        self.reverse.add_dependant_version(self.bv2)
        self.reverse.add_dependant_version(self.bv3)

        self.store.upsert_reverse_dependencies(self.reverse)

        # Other version of same block
        bver2 = BlockVersion.loads("creator/block(owner/branch):3")
        self.reverse2 = ReverseDependency(bver2)
        self.reverse2.add_dependant_version(self.bv2)
        self.reverse2.add_dependant_version(self.bv3)

        self.store.upsert_reverse_dependencies(self.reverse2)
    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)
Beispiel #8
0
class ReverseDependencyMongoStoreTest(TestWithMongo):
    def setUp(self):
        self.store = MongoServerStore(self.conn, self.__class__.__name__)
        self.store = ReverseDependencyMongoStore(self.store)
        bver = BlockVersion.loads("creator/block(owner/branch):2")
        self.bv2 = BlockVersion.loads("creator2/block(owner2/branch):2")
        self.bv3 = BlockVersion.loads("creator3/block(owner3/branch):3")

        self.reverse = ReverseDependency(bver)
        self.reverse.add_dependant_version(self.bv2)
        self.reverse.add_dependant_version(self.bv3)

        self.store.upsert_reverse_dependencies(self.reverse)

        # Other version of same block
        bver2 = BlockVersion.loads("creator/block(owner/branch):3")
        self.reverse2 = ReverseDependency(bver2)
        self.reverse2.add_dependant_version(self.bv2)
        self.reverse2.add_dependant_version(self.bv3)

        self.store.upsert_reverse_dependencies(self.reverse2)

    def test_read_and_upsert_reverse_dependencies(self):

        reverse_readed = self.store.read_direct_reverse_dependencies(
            self.reverse.version)

        self.assertEquals(self.reverse, reverse_readed)

        # Now add directly to mongo a new dependency
        new_ver = BlockVersion.loads("creator3/block3(owner3/branch3):3")
        self.store.add_reverse_dependency_to(self.reverse.version, new_ver)

        reverse_readed = self.store.read_direct_reverse_dependencies(
            self.reverse.version)

        self.reverse.add_dependant_version(new_ver)
        self.assertEquals(self.reverse, reverse_readed)
class ReverseDependencyMongoStoreTest(TestWithMongo):

    def setUp(self):
        self.store = MongoServerStore(self.conn, self.__class__.__name__)
        self.store = ReverseDependencyMongoStore(self.store)
        bver = BlockVersion.loads("creator/block(owner/branch):2")
        self.bv2 = BlockVersion.loads("creator2/block(owner2/branch):2")
        self.bv3 = BlockVersion.loads("creator3/block(owner3/branch):3")

        self.reverse = ReverseDependency(bver)
        self.reverse.add_dependant_version(self.bv2)
        self.reverse.add_dependant_version(self.bv3)

        self.store.upsert_reverse_dependencies(self.reverse)

        # Other version of same block
        bver2 = BlockVersion.loads("creator/block(owner/branch):3")
        self.reverse2 = ReverseDependency(bver2)
        self.reverse2.add_dependant_version(self.bv2)
        self.reverse2.add_dependant_version(self.bv3)

        self.store.upsert_reverse_dependencies(self.reverse2)

    def test_read_and_upsert_reverse_dependencies(self):

        reverse_readed = self.store.read_direct_reverse_dependencies(self.reverse.version)

        self.assertEquals(self.reverse, reverse_readed)

        # Now add directly to mongo a new dependency
        new_ver = BlockVersion.loads("creator3/block3(owner3/branch3):3")
        self.store.add_reverse_dependency_to(self.reverse.version, new_ver)

        reverse_readed = self.store.read_direct_reverse_dependencies(self.reverse.version)

        self.reverse.add_dependant_version(new_ver)
        self.assertEquals(self.reverse, reverse_readed)