Пример #1
0
 def testOneOfEveryNExportVersionsZero(self):
     # Zero is a special case since it gets rolled into the first interval.
     # Test that here.
     paths = [gc.Path("/foo", 0), gc.Path("/foo", 4), gc.Path("/foo", 5)]
     one_of = gc.one_of_every_n_export_versions(3)
     self.assertEqual(
         one_of(paths),
         [gc.Path("/foo", 0), gc.Path("/foo", 5)])
Пример #2
0
    def testPathsWithParse(self):
        base_dir = os.path.join(test.get_temp_dir(), "paths_parse")
        self.assertFalse(gfile.Exists(base_dir))
        for p in xrange(3):
            gfile.MakeDirs(os.path.join(base_dir, "%d" % p))
        # add a base_directory to ignore
        gfile.MakeDirs(os.path.join(base_dir, "ignore"))

        self.assertEqual(gc.get_paths(base_dir, _create_parser(base_dir)), [
            gc.Path(os.path.join(base_dir, "0"), 0),
            gc.Path(os.path.join(base_dir, "1"), 1),
            gc.Path(os.path.join(base_dir, "2"), 2)
        ])
Пример #3
0
 def testNegation(self):
   paths = [
       gc.Path("/foo", 4), gc.Path("/foo", 5), gc.Path("/foo", 6),
       gc.Path("/foo", 9)
   ]
   mod = gc.negation(gc.mod_export_version(2))
   self.assertEquals(mod(paths), [gc.Path("/foo", 5), gc.Path("/foo", 9)])
   mod = gc.negation(gc.mod_export_version(3))
   self.assertEquals(mod(paths), [gc.Path("/foo", 4), gc.Path("/foo", 5)])
Пример #4
0
 def testModExportVersion(self):
   paths = [
       gc.Path("/foo", 4), gc.Path("/foo", 5), gc.Path("/foo", 6),
       gc.Path("/foo", 9)
   ]
   mod = gc.mod_export_version(2)
   self.assertEquals(mod(paths), [gc.Path("/foo", 4), gc.Path("/foo", 6)])
   mod = gc.mod_export_version(3)
   self.assertEquals(mod(paths), [gc.Path("/foo", 6), gc.Path("/foo", 9)])
Пример #5
0
    def testPathsWithParse(self):
        base_dir = os.path.join(tf.test.get_temp_dir(), "paths_parse")
        self.assertFalse(gfile.Exists(base_dir))
        for p in xrange(3):
            gfile.MakeDirs(os.path.join(base_dir, "%d" % p))
        # add a base_directory to ignore
        gfile.MakeDirs(os.path.join(base_dir, "ignore"))

        # create a simple parser that pulls the export_version from the directory.
        def parser(path):
            match = re.match("^" + base_dir + "/(\\d+)$", path.path)
            if not match:
                return None
            return path._replace(export_version=int(match.group(1)))

        self.assertEquals(gc.get_paths(base_dir, parser=parser), [
            gc.Path(os.path.join(base_dir, "0"), 0),
            gc.Path(os.path.join(base_dir, "1"), 1),
            gc.Path(os.path.join(base_dir, "2"), 2)
        ])
Пример #6
0
 def testUnion(self):
   paths = []
   for i in xrange(10):
     paths.append(gc.Path("/foo", i))
   f = gc.union(gc.largest_export_versions(3), gc.mod_export_version(3))
   self.assertEquals(
       f(paths), [
           gc.Path("/foo", 0), gc.Path("/foo", 3), gc.Path("/foo", 6),
           gc.Path("/foo", 7), gc.Path("/foo", 8), gc.Path("/foo", 9)
       ])
Пример #7
0
 def testOneOfEveryNExportVersions(self):
     paths = [
         gc.Path("/foo", 0),
         gc.Path("/foo", 1),
         gc.Path("/foo", 3),
         gc.Path("/foo", 5),
         gc.Path("/foo", 6),
         gc.Path("/foo", 7),
         gc.Path("/foo", 8),
         gc.Path("/foo", 33)
     ]
     one_of = gc.one_of_every_n_export_versions(3)
     self.assertEqual(one_of(paths), [
         gc.Path("/foo", 3),
         gc.Path("/foo", 6),
         gc.Path("/foo", 8),
         gc.Path("/foo", 33)
     ])
Пример #8
0
 def testLargestExportVersionsDoesNotDeleteZeroFolder(self):
     paths = [gc.Path("/foo", 0), gc.Path("/foo", 3)]
     newest = gc.largest_export_versions(2)
     n = newest(paths)
     self.assertEqual(n, [gc.Path("/foo", 0), gc.Path("/foo", 3)])
Пример #9
0
 def testLargestExportVersions(self):
     paths = [gc.Path("/foo", 8), gc.Path("/foo", 9), gc.Path("/foo", 10)]
     newest = gc.largest_export_versions(2)
     n = newest(paths)
     self.assertEqual(n, [gc.Path("/foo", 9), gc.Path("/foo", 10)])