Ejemplo n.º 1
0
class Backend_Segment_Tests(unittest.TestCase):

    def setUp(self):
        root = os.path.abspath(self.mktemp())
        os.mkdir(root)
        datadir = os.path.join(root, 'data')
        os.mkdir(datadir)
        envdir = os.path.join(root, 'env')
        os.mkdir(envdir)
        tmpdir = os.path.join(root, 'tmp')
        os.mkdir(tmpdir)
        options = {}
        self.env = Env(envdir, datadir, tmpdir, options)
        self.index = Index(self.env, 'store')

    def test_create_Segment(self):
        try:
            segment = None
            with self.index.new_txn() as txn:
                segmentId = self.index.new_segment(txn)
                segment = Segment(txn, self.index, segmentId)
            self.failUnless(segmentId == 1)
        finally:
            if segment: segment.close()
        try:
            segment = None
            with self.index.new_txn() as txn:
                segmentId = self.index.new_segment(txn)
                segment = Segment(txn, self.index, segmentId)
            self.failUnless(segmentId == 2)
        finally:
            if segment: segment.close()
        try:
            segment = None
            with self.index.new_txn() as txn:
                segmentId = self.index.new_segment(txn)
                segment = Segment(txn, self.index, segmentId)
            self.failUnless(segmentId == 3)
        finally:
            if segment: segment.close()
        self.failUnless(sorted(self.index.iter_segments(None)) == [1,2,3])

    def test_delete_Segment(self):
        with self.index.new_txn() as txn:
            segmentId = self.index.new_segment(txn)
        with self.index.new_txn() as txn:
            self.index.delete_segment(txn, segmentId)

    def tearDown(self):
        self.index.close()
        self.env.close()