def test_is_archive_file(self):
        af = ArchiveFinder()

        self.assertEquals(af.is_archive_file('toto.avi'), (False, False))
        self.assertEquals(af.is_archive_file('toto.avi', [
            AllIsArchive,
        ]), ('toto', AllIsArchive))
Beispiel #2
0
    def test_realcase_3(self):
        filenames = ['tes-lvsf-sample.par2',
                     'tes-lvsf-sample.vol00+1.par2',
                     'tes-lvsf-sample.vol01+2.par2',
                     'tes-lvsf.cd1.par2',
                     'tes-lvsf.cd1.rar',
                     'tes-lvsf.cd1.r00',
                     'tes-lvsf.cd1.r01',
                     'tes-lvsf.cd1.r02',
                     'tes-lvsf.cd1.r03',
                     'tes-lvsf.cd1.vol00+1.par2',
                     'tes-lvsf.cd1.vol01+2.par2',
                     'tes-lvsf.cd2.par2',
                     'tes-lvsf.cd2.r00',
                     'tes-lvsf.cd2.r01']

        af = ArchiveFinder()
        result = af.get_path_archives('path', filenames)
        self.assertEquals(result, [])
        result = af.get_path_archives('path', filenames, [RarArchive,])
        self.assertEquals(len(result), 2)

        for archive in result:
            self.assertTrue(archive.name.startswith('tes-lvsf'))
            if archive.name == 'tes-lvsf.cd1':
                self.assertEquals(len(archive.archives), 5)
                self.assertEquals(len(archive.medkits), 3)
            else:
                self.assertEquals(len(archive.archives), 2)
                self.assertEquals(len(archive.medkits), 1)
    def test_realcase_3(self):
        filenames = ['tes-lvsf-sample.par2',
                     'tes-lvsf-sample.vol00+1.par2',
                     'tes-lvsf-sample.vol01+2.par2',
                     'tes-lvsf.cd1.par2',
                     'tes-lvsf.cd1.rar',
                     'tes-lvsf.cd1.r00',
                     'tes-lvsf.cd1.r01',
                     'tes-lvsf.cd1.r02',
                     'tes-lvsf.cd1.r03',
                     'tes-lvsf.cd1.vol00+1.par2',
                     'tes-lvsf.cd1.vol01+2.par2',
                     'tes-lvsf.cd2.par2',
                     'tes-lvsf.cd2.r00',
                     'tes-lvsf.cd2.r01']

        af = ArchiveFinder()
        result = af.get_path_archives('path', filenames)
        self.assertEquals(result, [])
        result = af.get_path_archives('path', filenames, [RarArchive])
        self.assertEquals(len(result), 2)

        for archive in result:
            self.assertTrue(archive.name.startswith('tes-lvsf'))
            if archive.name == 'tes-lvsf.cd1':
                self.assertEquals(len(archive.archives), 5)
                self.assertEquals(len(archive.medkits), 3)
            else:
                self.assertEquals(len(archive.archives), 2)
                self.assertEquals(len(archive.medkits), 1)
    def test_get_path_archives(self):
        af = ArchiveFinder()
        filenames = ['archive_1.1', 'archive_1.2', 'archive_1.3',
                     'archive_2.1', 'archive_2.2', 'archive_2.3']

        result = af.get_path_archives('path', filenames)
        self.assertEquals(result, [])
        result = af.get_path_archives('path', filenames, [AllIsArchive])
        self.assertEquals(len(result), 2)
        self.assertTrue(isinstance(result[0], AllIsArchive))
    def test_archives(self):
        path_archives = {'path_1': [Archive('archive_1'), Archive('archive_2')], 
                         'path_2': [Archive('archive_3')],}
        
        af = ArchiveFinder()
        af.path_archives_found = path_archives

        self.assertEquals(len(af.archives), 3)
        self.assertEquals([archive.name for archive in af.archives],
                          ['archive_1', 'archive_2', 'archive_3'])
    def test_archives(self):
        path_archives = {'path_1': [Archive('archive_1'),
                                    Archive('archive_2')],
                         'path_2': [Archive('archive_3')]}

        af = ArchiveFinder()
        af.path_archives_found = path_archives

        self.assertEquals(len(af.archives), 3)
        self.assertEquals([archive.name for archive in af.archives],
                          ['archive_1', 'archive_2', 'archive_3'])
    def test_init(self):
        af = ArchiveFinder()

        self.assertEquals(af.paths, ['.'])
        self.assertEquals(af.recursive, True)
        self.assertEquals(af.archive_classes, [])

        af = ArchiveFinder(TEST_DIRPATH, False, [AllIsArchive])

        self.assertEquals(af.paths, [TEST_DIRPATH])
        self.assertEquals(af.recursive, False)
        self.assertEquals(af.archive_classes, [AllIsArchive])
Beispiel #8
0
    def test_realcase_2(self):
        filenames = [
            'bs-mbfs.rar', 'bs-mbfs.r00', 'bs-mbfs.r01', 'bs-mbfs.r02',
            'bs-mbfs.r03', 'bs-mbfs.r04', 'bs-mbfs.abtt.par2',
            'bs-mbfs.abtt.vol000+01.par2', 'bs-mbfs.abtt.vol001+02.par2',
            'bs-mbfs.nfo'
        ]

        af = ArchiveFinder()
        result = af.get_path_archives('path', filenames)
        self.assertEquals(result, [])
        result = af.get_path_archives('path', filenames, [RarArchive])
        self.assertEquals(len(result), 1)
        self.assertEquals(result[0].name, 'bs-mbfs')
        self.assertEquals(len(result[0].archives), 6)
        self.assertEquals(len(result[0].medkits), 3)
    def test_realcase_2(self):
        filenames = ['bs-mbfs.rar',
                     'bs-mbfs.r00',
                     'bs-mbfs.r01',
                     'bs-mbfs.r02',
                     'bs-mbfs.r03',
                     'bs-mbfs.r04',
                     'bs-mbfs.abtt.par2',
                     'bs-mbfs.abtt.vol000+01.par2',
                     'bs-mbfs.abtt.vol001+02.par2',
                     'bs-mbfs.nfo']

        af = ArchiveFinder()
        result = af.get_path_archives('path', filenames)
        self.assertEquals(result, [])
        result = af.get_path_archives('path', filenames, [RarArchive])
        self.assertEquals(len(result), 1)
        self.assertEquals(result[0].name, 'bs-mbfs')
        self.assertEquals(len(result[0].archives), 6)
        self.assertEquals(len(result[0].medkits), 3)
    def test_realcase_1(self):
        filenames = ['fil.usenet4all.S81103.avi.part01.rar',
                     'fil.usenet4all.S81103.avi.part01.rar.par2',
                     'fil.usenet4all.S81103.avi.part01.rar.vol000+01.par2',
                     'fil.usenet4all.S81103.avi.part01.rar.vol001+02.par2',
                     'fil.usenet4all.S81103.avi.part01.rar.vol003+04.par2',
                     'fil.usenet4all.S81103.avi.part01.rar.vol007+08.par2',
                     'fil.usenet4all.S81103.avi.part02.rar',
                     'fil.usenet4all.S81103.avi.part03.rar',
                     'fil.usenet4all.S81103.avi.part04.rar',
                     'fil.usenet4all.S81103.avi.part05.rar',
                     'fil.usenet4all.S81103.avi.part06.rar']

        af = ArchiveFinder()
        result = af.get_path_archives('path', filenames)
        self.assertEquals(result, [])
        result = af.get_path_archives('path', filenames, [RarArchive])
        self.assertEquals(len(result), 1)
        self.assertEquals(result[0].name, 'fil.usenet4all.S81103.avi')
        self.assertEquals(len(result[0].archives), 6)
        self.assertEquals(len(result[0].medkits), 5)
Beispiel #11
0
    def test_realcase_1(self):
        filenames = ['fil.usenet4all.S81103.avi.part01.rar',
                     'fil.usenet4all.S81103.avi.part01.rar.par2',
                     'fil.usenet4all.S81103.avi.part01.rar.vol000+01.par2',
                     'fil.usenet4all.S81103.avi.part01.rar.vol001+02.par2',
                     'fil.usenet4all.S81103.avi.part01.rar.vol003+04.par2',
                     'fil.usenet4all.S81103.avi.part01.rar.vol007+08.par2',
                     'fil.usenet4all.S81103.avi.part02.rar',
                     'fil.usenet4all.S81103.avi.part03.rar',
                     'fil.usenet4all.S81103.avi.part04.rar',
                     'fil.usenet4all.S81103.avi.part05.rar',
                     'fil.usenet4all.S81103.avi.part06.rar',]

        af = ArchiveFinder()
        result = af.get_path_archives('path', filenames)
        self.assertEquals(result, [])
        result = af.get_path_archives('path', filenames, [RarArchive,])
        self.assertEquals(len(result), 1)
        self.assertEquals(result[0].name, 'fil.usenet4all.S81103.avi')
        self.assertEquals(len(result[0].archives), 6)
        self.assertEquals(len(result[0].medkits), 5)
Beispiel #12
0
 def extract(self, repair=True):
     """
     We will try a repair and relaunch the scan
     for extracting.
     """
     repaired = self.check_and_repair()
     if repaired:
         finder = ArchiveFinder(
             self.path, False,
             [RarArchive, SevenZipArchive,
              XtmArchive, HJSplitArchive])
         archives = finder.path_archives_found[self.path]
         for archive in archives:
             if archive.name == self.name:
                 return archive.extract(False)
    def test_find_archives(self):
        af = ArchiveFinder()

        self.assertEquals(len(af.find_archives([TEST_DIRPATH], False)), 1)
        self.assertNotEquals(len(af.find_archives([TEST_DIRPATH], True)), 1)
        self.assertEquals(len(af.find_archives(['.', TEST_DIRPATH], False)), 2)
 def test_multi_path(self):
     af = ArchiveFinder(TEST_DIRPATH)
     self.assertEquals(af.paths, [TEST_DIRPATH])
     af = ArchiveFinder(['.', TEST_DIRPATH])
     self.assertEquals(af.paths, ['.', TEST_DIRPATH])
    def test_is_archive_file(self):
        af = ArchiveFinder()

        self.assertEquals(af.is_archive_file('toto.avi'), (False, False))
        self.assertEquals(af.is_archive_file('toto.avi', [AllIsArchive]),
                          ('toto', AllIsArchive))
    def test_find_archives(self):
        af = ArchiveFinder()

        self.assertEquals(len(af.find_archives([TEST_DIRPATH], False)), 1)
        self.assertNotEquals(len(af.find_archives([TEST_DIRPATH], True)), 1)
        self.assertEquals(len(af.find_archives(['.', TEST_DIRPATH], False)), 2)