Exemplo n.º 1
0
    def test_deep_nesting(self):
        nesting_levels = [
            os.path.join('test'),
            os.path.join('test', 'dir1'),
            os.path.join('test', 'dir2'),

            os.path.join('test', 'dir1', 'dir1_dir1'),
            os.path.join('test', 'dir1', 'dir1_dir2'),
            os.path.join('test', 'dir1', 'dir1_dir1', 'testfile.txt'),
            os.path.join('test', 'dir1', 'dir1_dir2', 'testfile.txt'),

            os.path.join('test', 'dir2', 'dir2_dir1'),
            os.path.join('test', 'dir2', 'dir2_dir1', 'testfile.txt'),
        ]

        backend = PythonTarFileBackend(archive_path='test', archive_name='test', compression='')
        backend.readmode = False

        testfile = io.StringIO()
        testfile.write('testcontent')
        testfile.seek(0)

        backend.add_file(os.path.join('dir1', 'dir1_dir1', 'testfile.txt'), testfile)
        testfile.seek(0)
        backend.add_file(os.path.join('dir2', 'dir2_dir1', 'testfile.txt'), testfile)
        testfile.seek(0)
        backend.add_file(os.path.join('dir1', 'dir1_dir2', 'testfile.txt'), testfile)
        backend.close()

        backend.readmode = True
        archive = backend.read_archive()

        for member in archive.getmembers():
            self.assertTrue(member.name in nesting_levels)