class TestMd5CheckerWalk(unittest.TestCase): """Tests for the 'walk' method of the Md5Checker class """ def setUp(self): """Build directory with test data """ self.example_dir = ExampleDirLanguages() self.dirn = self.example_dir.create_directory() def tearDown(self): """Remove directory with test data """ self.example_dir.delete_directory() def test_walk(self): """Md5Checker.walk yields all files """ # Walk the example directory and check all yielded files # are in the list of created files file_list = self.example_dir.filelist(include_links=True) print(str(file_list)) for f in Md5Checker.walk(self.dirn): print("Check for %s" % f) self.assertTrue(f in file_list, "%s not in files or links?" % f) file_list.remove(f) # Check that no files were missed self.assertTrue( len(file_list) == 0, "Some files not yielded: %s" % file_list) def test_walk_ignore_links(self): """Md5Checker.walk ignores links """ # Walk the example directory and check all yielded files # are in the list of created files file_list = self.example_dir.filelist(include_links=False) for f in Md5Checker.walk(self.dirn, links=Md5Checker.IGNORE_LINKS): self.assertTrue(f in file_list, "%s not in files?" % f) file_list.remove(f) # Check that no files were missed self.assertTrue( len(file_list) == 0, "Some files not yielded: %s" % file_list) def test_walk_yields_broken_links(self): """Md5Checker.walk yields broken links """ # Add broken link self.example_dir.add_link("broken.txt", "missing.txt") # Walk the example directory and check all yielded files # are in the list of created files file_list = self.example_dir.filelist(include_links=False) for f in Md5Checker.walk(self.dirn, links=Md5Checker.IGNORE_LINKS): self.assertTrue(f in file_list, "%s not in files?" % f) file_list.remove(f) # Check that no files were missed self.assertTrue( len(file_list) == 0, "Some files not yielded: %s" % file_list)
class TestMd5CheckerWalk(unittest.TestCase): """Tests for the 'walk' method of the Md5Checker class """ def setUp(self): """Build directory with test data """ self.example_dir = ExampleDirLanguages() self.dirn = self.example_dir.create_directory() def tearDown(self): """Remove directory with test data """ self.example_dir.delete_directory() def test_walk(self): """Md5Checker.walk yields all files """ # Walk the example directory and check all yielded files # are in the list of created files file_list = self.example_dir.filelist(include_links=True) print str(file_list) for f in Md5Checker.walk(self.dirn): print "Check for %s" % f self.assertTrue(f in file_list,"%s not in files or links?" % f) file_list.remove(f) # Check that no files were missed self.assertTrue(len(file_list) == 0, "Some files not yielded: %s" % file_list) def test_walk_ignore_links(self): """Md5Checker.walk ignores links """ # Walk the example directory and check all yielded files # are in the list of created files file_list = self.example_dir.filelist(include_links=False) for f in Md5Checker.walk(self.dirn,links=Md5Checker.IGNORE_LINKS): self.assertTrue(f in file_list,"%s not in files?" % f) file_list.remove(f) # Check that no files were missed self.assertTrue(len(file_list) == 0, "Some files not yielded: %s" % file_list) def test_walk_yields_broken_links(self): """Md5Checker.walk yields broken links """ # Add broken link self.example_dir.add_link("broken.txt","missing.txt") # Walk the example directory and check all yielded files # are in the list of created files file_list = self.example_dir.filelist(include_links=False) for f in Md5Checker.walk(self.dirn,links=Md5Checker.IGNORE_LINKS): self.assertTrue(f in file_list,"%s not in files?" % f) file_list.remove(f) # Check that no files were missed self.assertTrue(len(file_list) == 0, "Some files not yielded: %s" % file_list)
class TestMd5CheckerComputeMd5sms(unittest.TestCase): """Tests for the 'compute_md5sums' method of the Md5Checker class """ def setUp(self): self.example_dir = ExampleDirLanguages() self.example_dir.create_directory() def tearDown(self): self.example_dir.delete_directory() def test_compute_md5dums(self): """Md5Checker.compute_md5sums returns correct md5sums """ files = self.example_dir.filelist(include_links=True, full_path=False) for f, md5 in Md5Checker.compute_md5sums( self.example_dir.dirn, links=Md5Checker.FOLLOW_LINKS): self.assertTrue(f in files) self.assertEqual(md5, self.example_dir.checksum_for_file(f)) def test_compute_md5sums_ignore_links(self): """Md5Checker.compute_md5sums ignores links """ files = self.example_dir.filelist(include_links=False, full_path=False) for f, md5 in Md5Checker.compute_md5sums( self.example_dir.dirn, links=Md5Checker.IGNORE_LINKS): self.assertTrue(f in files) self.assertEqual(md5, self.example_dir.checksum_for_file(f)) def test_compute_md5sums_handle_broken_links(self): """Md5Checker.compute_md5sums handles broken links """ # Add a broken link self.example_dir.add_link("broken", "missing.txt") # Get file list including links files = self.example_dir.filelist(include_links=True, full_path=False) # Check checksums for f, md5 in Md5Checker.compute_md5sums(self.example_dir.dirn): self.assertTrue(f in files, "%s doesn't appear in file list?" % f) self.assertEqual(md5, self.example_dir.checksum_for_file(f))
class TestMd5CheckerComputeMd5sms(unittest.TestCase): """Tests for the 'compute_md5sums' method of the Md5Checker class """ def setUp(self): self.example_dir = ExampleDirLanguages() self.example_dir.create_directory() def tearDown(self): self.example_dir.delete_directory() def test_compute_md5dums(self): """Md5Checker.compute_md5sums returns correct md5sums """ files = self.example_dir.filelist(include_links=True,full_path=False) for f,md5 in Md5Checker.compute_md5sums(self.example_dir.dirn, links=Md5Checker.FOLLOW_LINKS): self.assertTrue(f in files) self.assertEqual(md5,self.example_dir.checksum_for_file(f)) def test_compute_md5sums_ignore_links(self): """Md5Checker.compute_md5sums ignores links """ files = self.example_dir.filelist(include_links=False,full_path=False) for f,md5 in Md5Checker.compute_md5sums(self.example_dir.dirn, links=Md5Checker.IGNORE_LINKS): self.assertTrue(f in files) self.assertEqual(md5,self.example_dir.checksum_for_file(f)) def test_compute_md5sums_handle_broken_links(self): """Md5Checker.compute_md5sums handles broken links """ # Add a broken link self.example_dir.add_link("broken","missing.txt") # Get file list including links files = self.example_dir.filelist(include_links=True,full_path=False) # Check checksums for f,md5 in Md5Checker.compute_md5sums(self.example_dir.dirn): self.assertTrue(f in files,"%s doesn't appear in file list?" % f) self.assertEqual(md5,self.example_dir.checksum_for_file(f))
class TestCmpDirs(unittest.TestCase): def setUp(self): # Create reference example directory structure which # includes files and links self.dref = ExampleDirLanguages() self.dref.create_directory() # Create copy of reference dir self.dcpy = ExampleDirLanguages() self.dcpy.create_directory() def tearDown(self): # Delete example directory structures self.dref.delete_directory() self.dcpy.delete_directory() def test_cmp_dirs_identical_dirs(self): """cmp_dirs works for identical directories """ # Compare dirs count = cmp_dirs(self.dref.dirn, self.dcpy.dirn) self.assertEqual(count[Md5Checker.MD5_OK], 7) self.assertEqual(count[Md5Checker.LINKS_SAME], 6) def test_cmp_dirs_different_dirs(self): """cmp_dirs works for different directories """ # Add more files and links to reference self.dref.add_file("extra", "Additional file") self.dref.add_link("destination", "place/you/want/to/go") # Add differing files and links self.dref.add_file("more", "Yet another file") self.dcpy.add_file("more", "Yet another file, again") self.dref.add_link("where_to", "somewhere") self.dcpy.add_link("where_to", "somewhere/else") # Compare dirs count = cmp_dirs(self.dref.dirn, self.dcpy.dirn) self.assertEqual(count[Md5Checker.MD5_OK], 7) self.assertEqual(count[Md5Checker.LINKS_SAME], 6) self.assertEqual(count[Md5Checker.MD5_FAILED], 1) self.assertEqual(count[Md5Checker.LINKS_DIFFER], 1)
class TestCmpDirs(unittest.TestCase): def setUp(self): # Create reference example directory structure which # includes files and links self.dref = ExampleDirLanguages() self.dref.create_directory() # Create copy of reference dir self.dcpy = ExampleDirLanguages() self.dcpy.create_directory() def tearDown(self): # Delete example directory structures self.dref.delete_directory() self.dcpy.delete_directory() def test_cmp_dirs_identical_dirs(self): """cmp_dirs works for identical directories """ # Compare dirs count = cmp_dirs(self.dref.dirn,self.dcpy.dirn) self.assertEqual(count[Md5Checker.MD5_OK],7) self.assertEqual(count[Md5Checker.LINKS_SAME],6) def test_cmp_dirs_different_dirs(self): """cmp_dirs works for different directories """ # Add more files and links to reference self.dref.add_file("extra","Additional file") self.dref.add_link("destination","place/you/want/to/go") # Add differing files and links self.dref.add_file("more","Yet another file") self.dcpy.add_file("more","Yet another file, again") self.dref.add_link("where_to","somewhere") self.dcpy.add_link("where_to","somewhere/else") # Compare dirs count = cmp_dirs(self.dref.dirn,self.dcpy.dirn) self.assertEqual(count[Md5Checker.MD5_OK],7) self.assertEqual(count[Md5Checker.LINKS_SAME],6) self.assertEqual(count[Md5Checker.MD5_FAILED],1) self.assertEqual(count[Md5Checker.LINKS_DIFFER],1)