예제 #1
0
    def testCollateIterators(self):
        """Test basic collating"""
        indices = list(map(index, [0, 1, 2, 3]))

        helper = lambda i: indices[i]  # noqa: E731 use def instead of lambda
        makeiter1 = lambda: iter(indices
                                 )  # noqa: E731 use def instead of lambda
        makeiter2 = lambda: iter(map(helper, [0, 1, 3])
                                 )  # noqa: E731 use def instead of lambda
        makeiter3 = lambda: iter(map(helper, [1, 2])
                                 )  # noqa: E731 use def instead of lambda

        outiter = rorpiter.CollateIterators(makeiter1(), makeiter2())
        self.assertTrue(
            iter_equal(
                outiter,
                iter([(indices[0], indices[0]), (indices[1], indices[1]),
                      (indices[2], None), (indices[3], indices[3])])))

        self.assertTrue(
            iter_equal(
                rorpiter.CollateIterators(makeiter1(), makeiter2(),
                                          makeiter3()),
                iter([(indices[0], indices[0], None),
                      (indices[1], indices[1], indices[1]),
                      (indices[2], None, indices[2]),
                      (indices[3], indices[3], None)])))

        self.assertTrue(
            iter_equal(rorpiter.CollateIterators(makeiter1(), iter([])),
                       iter([(i, None) for i in indices])))
        self.assertTrue(
            iter_equal(iter([(i, None) for i in indices]),
                       rorpiter.CollateIterators(makeiter1(), iter([]))))
예제 #2
0
 def compare(man, rootrp, time):
     sel = selection.Select(rootrp)
     sel.parse_selection_args(
         (), ())  # make sure incorrect files are filtered out
     self.assertTrue(
         iter_equal(sel.set_iter(),
                    man._get_meta_main_at_time(time, None)))
예제 #3
0
    def ParseTest(self, tuplelist, indices, filelists=[]):
        """No error if running select on tuple goes over indices"""
        def tuple_fsencode(filetuple):
            return tuple(map(os.fsencode, filetuple))

        if not self.root:
            self.root = rpath.RPath(Globals.local_connection,
                                    "rdiff-backup_testfiles/select")
        self.Select = Select(self.root)
        self.Select.ParseArgs(tuplelist, self.remake_filelists(filelists))
        assert iter_equal(iter_map(lambda dsrp: dsrp.index,
                                   self.Select.set_iter()),
                          map(tuple_fsencode, indices),
                          verbose=1)
예제 #4
0
 def testConversion(self):
     """Test iter to file conversion"""
     for itm in [self.iter1maker, self.iter2maker]:
         self.assertTrue(
             iter_equal(itm(), IterWrappingFile(FileWrappingIter(itm()))))
예제 #5
0
 def compare(man, rootrp, time):
     sel = selection.Select(rootrp)
     sel.ParseArgs((), ())  # make sure incorrect files are filtered out
     assert iter_equal(sel.set_iter(), man.get_meta_at_time(time, None))