Example #1
0
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)
Example #3
0
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))
Example #5
0
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)