Esempio n. 1
0
 def test_sym_over_dir(self):
     path = pjoin(self.dir, "sym")
     fp = pjoin(self.dir, "trg")
     os.mkdir(path)
     # test sym over a directory.
     f = fs.fsSymlink(path, fp, mode=0644, mtime=0, uid=os.getuid(),
         gid=os.getgid())
     cset = contents.contentsSet([f])
     self.assertRaises(ops.FailedCopy, ops.merge_contents, cset)
     self.assertTrue(fs.isdir(livefs.gen_obj(path)))
     os.mkdir(fp)
     ops.merge_contents(cset)
Esempio n. 2
0
 def test_callback(self):
     for attr in dir(self):
         if not attr.startswith('entries') or 'fail' in attr:
             continue
         e = getattr(self, attr)
         if not isinstance(e, dict):
             continue
         src, dest, cset = self.generic_merge_bits(e)
         new_cset = contents.contentsSet(contents.offset_rewriter(dest, cset))
         s = set(new_cset)
         ops.merge_contents(cset, offset=dest, callback=s.remove)
         self.assertFalse(s)
Esempio n. 3
0
 def test_dangling_symlink(self):
     src = self.gen_dir("src")
     self.generate_tree(src, {"dir":["dir"]})
     cset = livefs.scan(src, offset=src)
     dest = self.gen_dir("dest")
     os.symlink(pjoin(dest, "dest"), pjoin(dest, "dir"))
     self.assertTrue(ops.merge_contents(cset, offset=dest))
     self.assertEqual(cset, livefs.scan(src, offset=dest))
Esempio n. 4
0
 def generic_merge_bits(self, entries):
     src = self.gen_dir("src")
     self.generate_tree(src, entries)
     cset = livefs.scan(src, offset=src)
     dest = self.gen_dir("dest")
     self.assertTrue(ops.merge_contents(cset, offset=dest))
     self.assertEqual(livefs.scan(src, offset=src),
         livefs.scan(dest, offset=dest))
     return src, dest, cset
Esempio n. 5
0
 def test_exact_overwrite(self):
     src, dest, cset = self.generic_merge_bits(self.entries_norm1)
     self.assertTrue(ops.merge_contents(cset, offset=dest))