def test_08(self): '''Random files, simulate partly transferred files''' folder = self.gen_tempfolder() src_dir = os.path.join(folder, "src") dst_dir = os.path.join(folder, "dst") os.makedirs(src_dir) os.makedirs(dst_dir) rnd = random.Random() rnd.seed(332093199) src_files = gen_random_files(rnd, src_dir, 50) files_to_sync = src_files[-30:] for file_ in files_to_sync: shutil.copyfile( os.path.join(src_dir, file_), os.path.join(dst_dir, file_)) files_to_truncate = [] files_to_truncate.append(os.path.join(dst_dir, files_to_sync[-1])) files_to_truncate.append(os.path.join(dst_dir, files_to_sync[-2])) files_to_truncate.append(os.path.join(dst_dir, files_to_sync[-3])) for entry in files_to_truncate: with open(entry, mode="r+") as file_: new_size = os.path.getsize(entry) file_.truncate(new_size) copy_duplicity_backups.sync_files(src_dir, dst_dir, files_to_sync, False, 0) self.assertTrue(cmp_src_dst_files(src_dir, dst_dir, files_to_sync)) shutil.rmtree(folder)
def test_09(self): '''File size limit''' folder = self.gen_tempfolder() src_dir = os.path.join(folder, "src") dst_dir = os.path.join(folder, "dst") os.makedirs(src_dir) os.makedirs(dst_dir) gen_dummy_file(os.path.join(src_dir, "file1"), 20) gen_dummy_file(os.path.join(src_dir, "file2"), 30) gen_dummy_file(os.path.join(src_dir, "file3"), 20) max_size = 60 copy_duplicity_backups.sync_files( src_dir, dst_dir, ["file1", "file2", "file3"], False, max_size) dst_files = os.listdir(dst_dir) self.assertEqual(len(dst_files), 2) dst_size = 0 for file_ in dst_files: dst_size = dst_size + os.path.getsize(os.path.join(dst_dir, file_)) self.assertTrue(dst_size <= max_size) shutil.rmtree(folder)
def test_06(self): '''Same two files in source and destination, both in list, one differs in size''' folder = self.gen_tempfolder() src_dir = os.path.join(folder, "src") dst_dir = os.path.join(folder, "dst") os.makedirs(src_dir) os.makedirs(dst_dir) with open(os.path.join(src_dir, "nonempty_file"), mode="w") as file_: file_.write("new content") with open(os.path.join(src_dir, "empty_file"), mode="w"): pass with open(os.path.join(dst_dir, "nonempty_file"), mode="w") as file_: file_.write("old content, old size") with open(os.path.join(dst_dir, "empty_file"), mode="w"): pass copy_duplicity_backups.sync_files( src_dir, dst_dir, ["nonempty_file", "empty_file"], False, 0) dst_files = os.listdir(dst_dir) self.assertEqual(len(dst_files), 2) self.assertIn("nonempty_file", dst_files) self.assertIn("empty_file", dst_files) self.assertEqual( os.path.getsize(os.path.join(src_dir, "nonempty_file")), os.path.getsize(os.path.join(dst_dir, "nonempty_file"))) self.assertEqual( os.path.getsize(os.path.join(src_dir, "empty_file")), os.path.getsize(os.path.join(dst_dir, "empty_file"))) shutil.rmtree(folder)
def test_05(self): '''Same two files in source and destination, list only one file''' folder = self.gen_tempfolder() src_dir = os.path.join(folder, "src") dst_dir = os.path.join(folder, "dst") os.makedirs(src_dir) os.makedirs(dst_dir) with open(os.path.join(src_dir, "empty_file1"), mode="wb"): pass with open(os.path.join(src_dir, "empty_file2"), mode="wb"): pass with open(os.path.join(dst_dir, "empty_file1"), mode="wb"): pass with open(os.path.join(dst_dir, "empty_file2"), mode="wb"): pass copy_duplicity_backups.sync_files( src_dir, dst_dir, ["empty_file1"], False, 0) dst_files = os.listdir(dst_dir) self.assertEqual(len(dst_files), 1) self.assertIn("empty_file1", dst_files) shutil.rmtree(folder)
def test_01(self): '''Empty folders, empty list''' folder = self.gen_tempfolder() src_dir = os.path.join(folder, "src") dst_dir = os.path.join(folder, "dst") os.makedirs(src_dir) os.makedirs(dst_dir) copy_duplicity_backups.sync_files(src_dir, dst_dir, [], False, 0) self.assertEqual(len(os.listdir(dst_dir)), 0) shutil.rmtree(folder)
def test_02(self): '''Empty source folder, file present in dst, list empty''' folder = self.gen_tempfolder() src_dir = os.path.join(folder, "src") dst_dir = os.path.join(folder, "dst") os.makedirs(src_dir) os.makedirs(dst_dir) with open(os.path.join(dst_dir, "empty_file"), mode="wb"): pass copy_duplicity_backups.sync_files(src_dir, dst_dir, [], False, 0) self.assertEqual(len(os.listdir(dst_dir)), 0) shutil.rmtree(folder)
def test_07(self): '''Random files, some files available at destination''' folder = self.gen_tempfolder() src_dir = os.path.join(folder, "src") dst_dir = os.path.join(folder, "dst") os.makedirs(src_dir) os.makedirs(dst_dir) rnd = random.Random() rnd.seed(28373332) src_files = gen_random_files(rnd, src_dir, 50) files_to_sync = src_files[-30:] for file_ in files_to_sync[:10]: shutil.copyfile( os.path.join(src_dir, file_), os.path.join(dst_dir, file_)) copy_duplicity_backups.sync_files(src_dir, dst_dir, files_to_sync, False, 0) self.assertTrue(cmp_src_dst_files(src_dir, dst_dir, files_to_sync)) shutil.rmtree(folder)