コード例 #1
0
ファイル: localdb_test.py プロジェクト: toeb/client
class LocalDBTest(TestCase):
    _suites = ['client']

    def setUp(self):
        self.hiveFolder = tempfile.mkdtemp(suffix='biicode',
                                           dir=BII_TEST_FOLDER)
        self.db = LocalDB(os.path.join(self.hiveFolder, 'bii.db'))

    def tearDown(self):
        if os.path.isdir(self.hiveFolder):
            self.db.disconnect()
            # os.chmod(self.hiveFolder, stat.S_IWRITE)
            shutil.rmtree(self.hiveFolder)

    def test_not_logged_in(self):
        user = self.db.get_login()
        self.assertEquals(user, (None, None))

    def test_logged_in(self):
        user = "******", "dummypass"
        self.db.set_login(user)
        user2 = self.db.get_login()
        self.assertEquals(user, user2)

    def test_store_published_resources(self):
        s = References()
        brl_block = BRLBlock('dummy/dummy/block/master')
        block_version = BlockVersion(brl_block, 0)
        s[block_version] = [
            CellName("alf.c"),
            CellName("willy.c"),
            CellName('maya.h'),
            CellName('win/maya.h'),
            CellName('nix/maya.h')
        ]

        alf = Resource(SimpleCell("dummy/block/alf.c"),
                       Content(ID((0, 1, 2)), Blob("Hello Alf")))
        alf.cell.ID = ID((0, 1, 2))
        willy = Resource(SimpleCell("dummy/block/willy.c"),
                         Content(ID((0, 1, 3)), Blob("Hello Willy")))
        willy.cell.ID = ID((0, 1, 45))
        maya_v = Resource(VirtualCell("dummy/block/maya.h"), None)
        maya_v.cell.ID = ID((0, 1, 3))
        maya_win = Resource(SimpleCell("dummy/block/win/maya.h"),
                            Content(ID((0, 1, 4)), Blob("Hello Maya")))
        maya_win.cell.ID = ID((0, 1, 4))
        maya_nix = Resource(SimpleCell("dummy/block/nix/maya.h"),
                            Content(ID((0, 1, 5)), Blob("Hello Maya")))
        maya_nix.cell.ID = ID((0, 1, 5))

        # Expected return
        referenced_resources = ReferencedResources()
        referenced_resources[block_version].update({
            CellName("alf.c"):
            alf,
            CellName("willy.c"):
            willy,
            CellName('maya.h'):
            maya_v,
            CellName('win/maya.h'):
            maya_win,
            CellName('nix/maya.h'):
            maya_nix,
        })

        self.db.create_published_resources(referenced_resources)
        retrieved = self.db.get_published_resources(s)

        self.assertEquals(referenced_resources, retrieved)

    def test_store_snapshot(self):
        original_snap = [CellName("alf.c"), CellName("willy.c")]
        brl_block = BRLBlock('dummy/dummy/block/master')
        block_version = BlockVersion(brl_block, 0)
        self.db.create_cells_snapshot(block_version, original_snap)
        retrieved_snap = self.db.get_cells_snapshot(block_version)
        self.assertEquals(original_snap, retrieved_snap)

    def test_store_dep_table(self):
        original_deptable = BlockVersionTable()
        brl_block = BRLBlock('dummy/dummy/block/master')
        block_version = BlockVersion(brl_block, 0)
        self.db.set_dep_table(block_version, original_deptable)
        retrieved_snap = self.db.get_dep_table(block_version)
        self.assertEquals(original_deptable, retrieved_snap)

    def test_delete_dep_table(self):
        original_deptable = BlockVersionTable()
        brl_block = BRLBlock('dummy/dummy/block/master')
        block_version = BlockVersion(brl_block, 0)
        self.db.set_dep_table(block_version, original_deptable)
        ID = encode_serialized_value(block_version.serialize())
        self.db.delete(ID, DEP_TABLES)
        self.assertRaises(NotInStoreException, self.db.get_dep_table,
                          block_version)
コード例 #2
0
ファイル: localdb_test.py プロジェクト: MordodeMaru/client
class LocalDBTest(TestCase):
    _suites = ['client']

    def setUp(self):
        self.hiveFolder = tempfile.mkdtemp(suffix='biicode', dir=BII_TEST_FOLDER)
        self.db = LocalDB(os.path.join(self.hiveFolder, 'bii.db'))

    def tearDown(self):
        if os.path.isdir(self.hiveFolder):
            self.db.disconnect()
            # os.chmod(self.hiveFolder, stat.S_IWRITE)
            shutil.rmtree(self.hiveFolder)

    def test_not_logged_in(self):
        user = self.db.get_login()
        self.assertEquals(user, (None, None))

    def test_logged_in(self):
        user = "******", "dummypass"
        self.db.set_login(user)
        user2 = self.db.get_login()
        self.assertEquals(user, user2)

    def test_store_published_resources(self):
        s = References()
        brl_block = BRLBlock('dummy/dummy/block/master')
        block_version = BlockVersion(brl_block, 0)
        s[block_version] = [CellName("alf.c"), CellName("willy.c"),
                            CellName('maya.h'), CellName('win/maya.h'), CellName('nix/maya.h')]

        alf = Resource(SimpleCell("dummy/block/alf.c"),
                       Content(ID((0, 1, 2)), Blob("Hello Alf")))
        alf.cell.ID = ID((0, 1, 2))
        willy = Resource(SimpleCell("dummy/block/willy.c"),
                         Content(ID((0, 1, 3)), Blob("Hello Willy")))
        willy.cell.ID = ID((0, 1, 45))
        maya_v = Resource(VirtualCell("dummy/block/maya.h"), None)
        maya_v.cell.ID = ID((0, 1, 3))
        maya_win = Resource(SimpleCell("dummy/block/win/maya.h"),
                            Content(ID((0, 1, 4)), Blob("Hello Maya")))
        maya_win.cell.ID = ID((0, 1, 4))
        maya_nix = Resource(SimpleCell("dummy/block/nix/maya.h"),
                            Content(ID((0, 1, 5)), Blob("Hello Maya")))
        maya_nix.cell.ID = ID((0, 1, 5))

        # Expected return
        referenced_resources = ReferencedResources()
        referenced_resources[block_version].update({CellName("alf.c"): alf,
                                                    CellName("willy.c"): willy,
                                                    CellName('maya.h'): maya_v,
                                                    CellName('win/maya.h'): maya_win,
                                                    CellName('nix/maya.h'): maya_nix,
                                                    })

        self.db.create_published_resources(referenced_resources)
        retrieved = self.db.get_published_resources(s)

        self.assertEquals(referenced_resources, retrieved)

    def test_store_snapshot(self):
        original_snap = [CellName("alf.c"), CellName("willy.c")]
        brl_block = BRLBlock('dummy/dummy/block/master')
        block_version = BlockVersion(brl_block, 0)
        self.db.create_cells_snapshot(block_version, original_snap)
        retrieved_snap = self.db.get_cells_snapshot(block_version)
        self.assertEquals(original_snap, retrieved_snap)

    def test_store_dep_table(self):
        original_deptable = BlockVersionTable()
        brl_block = BRLBlock('dummy/dummy/block/master')
        block_version = BlockVersion(brl_block, 0)
        self.db.set_dep_table(block_version, original_deptable)
        retrieved_snap = self.db.get_dep_table(block_version)
        self.assertEquals(original_deptable, retrieved_snap)

    def test_delete_dep_table(self):
        original_deptable = BlockVersionTable()
        brl_block = BRLBlock('dummy/dummy/block/master')
        block_version = BlockVersion(brl_block, 0)
        self.db.set_dep_table(block_version, original_deptable)
        ID = encode_serialized_value(block_version.serialize())
        self.db.delete(ID, DEP_TABLES)
        self.assertRaises(NotInStoreException, self.db.get_dep_table, block_version)