當前位置: 首頁>>代碼示例>>Python>>正文


Python tarfile.ReadError方法代碼示例

本文整理匯總了Python中tarfile.ReadError方法的典型用法代碼示例。如果您正苦於以下問題:Python tarfile.ReadError方法的具體用法?Python tarfile.ReadError怎麽用?Python tarfile.ReadError使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在tarfile的用法示例。


在下文中一共展示了tarfile.ReadError方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: test_empty_tarfile

# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import ReadError [as 別名]
def test_empty_tarfile(self):
        # Test for issue6123: Allow opening empty archives.
        # This test checks if tarfile.open() is able to open an empty tar
        # archive successfully. Note that an empty tar archive is not the
        # same as an empty file!
        with tarfile.open(tmpname, self.mode.replace("r", "w")):
            pass
        try:
            tar = tarfile.open(tmpname, self.mode)
            tar.getnames()
        except tarfile.ReadError:
            self.fail("tarfile.open() failed on empty archive")
        else:
            self.assertListEqual(tar.getmembers(), [])
        finally:
            tar.close() 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:18,代碼來源:test_tarfile.py

示例2: test_premature_end_of_archive

# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import ReadError [as 別名]
def test_premature_end_of_archive(self):
        for size in (512, 600, 1024, 1200):
            with tarfile.open(tmpname, "w:") as tar:
                t = tarfile.TarInfo("foo")
                t.size = 1024
                tar.addfile(t, StringIO.StringIO("a" * 1024))

            with open(tmpname, "r+b") as fobj:
                fobj.truncate(size)

            with tarfile.open(tmpname) as tar:
                with self.assertRaisesRegexp(tarfile.ReadError, "unexpected end of data"):
                    for t in tar:
                        pass

            with tarfile.open(tmpname) as tar:
                t = tar.next()

                with self.assertRaisesRegexp(tarfile.ReadError, "unexpected end of data"):
                    tar.extract(t, TEMPDIR)

                with self.assertRaisesRegexp(tarfile.ReadError, "unexpected end of data"):
                    tar.extractfile(t).read() 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:25,代碼來源:test_tarfile.py

示例3: test_init_close_fobj

# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import ReadError [as 別名]
def test_init_close_fobj(self):
        # Issue #7341: Close the internal file object in the TarFile
        # constructor in case of an error. For the test we rely on
        # the fact that opening an empty file raises a ReadError.
        empty = os.path.join(TEMPDIR, "empty")
        with open(empty, "wb") as fobj:
            fobj.write("")

        try:
            tar = object.__new__(tarfile.TarFile)
            try:
                tar.__init__(empty)
            except tarfile.ReadError:
                self.assertTrue(tar.fileobj.closed)
            else:
                self.fail("ReadError not raised")
        finally:
            support.unlink(empty) 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:20,代碼來源:test_tarfile.py

示例4: _test_partial_input

# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import ReadError [as 別名]
def _test_partial_input(self, mode):
        class MyStringIO(StringIO.StringIO):
            hit_eof = False
            def read(self, n):
                if self.hit_eof:
                    raise AssertionError("infinite loop detected in tarfile.open()")
                self.hit_eof = self.pos == self.len
                return StringIO.StringIO.read(self, n)
            def seek(self, *args):
                self.hit_eof = False
                return StringIO.StringIO.seek(self, *args)

        data = bz2.compress(tarfile.TarInfo("foo").tobuf())
        for x in range(len(data) + 1):
            try:
                tarfile.open(fileobj=MyStringIO(data[:x]), mode=mode)
            except tarfile.ReadError:
                pass # we have no interest in ReadErrors 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:20,代碼來源:test_tarfile.py

示例5: test_init_close_fobj

# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import ReadError [as 別名]
def test_init_close_fobj(self):
        # Issue #7341: Close the internal file object in the TarFile
        # constructor in case of an error. For the test we rely on
        # the fact that opening an empty file raises a ReadError.
        empty = os.path.join(TEMPDIR, "empty")
        open(empty, "wb").write("")

        try:
            tar = object.__new__(tarfile.TarFile)
            try:
                tar.__init__(empty)
            except tarfile.ReadError:
                self.assertTrue(tar.fileobj.closed)
            else:
                self.fail("ReadError not raised")
        finally:
            os.remove(empty) 
開發者ID:dxwu,項目名稱:BinderFilter,代碼行數:19,代碼來源:test_tarfile.py

示例6: test_premature_end_of_archive

# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import ReadError [as 別名]
def test_premature_end_of_archive(self):
        for size in (512, 600, 1024, 1200):
            with tarfile.open(tmpname, "w:") as tar:
                t = tarfile.TarInfo("foo")
                t.size = 1024
                tar.addfile(t, io.BytesIO(b"a" * 1024))

            with open(tmpname, "r+b") as fobj:
                fobj.truncate(size)

            with tarfile.open(tmpname) as tar:
                with self.assertRaisesRegex(tarfile.ReadError, "unexpected end of data"):
                    for t in tar:
                        pass

            with tarfile.open(tmpname) as tar:
                t = tar.next()

                with self.assertRaisesRegex(tarfile.ReadError, "unexpected end of data"):
                    tar.extract(t, TEMPDIR)

                with self.assertRaisesRegex(tarfile.ReadError, "unexpected end of data"):
                    tar.extractfile(t).read() 
開發者ID:Microvellum,項目名稱:Fluid-Designer,代碼行數:25,代碼來源:test_tarfile.py

示例7: test_init_close_fobj

# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import ReadError [as 別名]
def test_init_close_fobj(self):
        # Issue #7341: Close the internal file object in the TarFile
        # constructor in case of an error. For the test we rely on
        # the fact that opening an empty file raises a ReadError.
        empty = os.path.join(TEMPDIR, "empty")
        with open(empty, "wb") as fobj:
            fobj.write(b"")

        try:
            tar = object.__new__(tarfile.TarFile)
            try:
                tar.__init__(empty)
            except tarfile.ReadError:
                self.assertTrue(tar.fileobj.closed)
            else:
                self.fail("ReadError not raised")
        finally:
            support.unlink(empty) 
開發者ID:Microvellum,項目名稱:Fluid-Designer,代碼行數:20,代碼來源:test_tarfile.py

示例8: test_null_tarfile

# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import ReadError [as 別名]
def test_null_tarfile(self):
        # Test for issue6123: Allow opening empty archives.
        # This test guarantees that tarfile.open() does not treat an empty
        # file as an empty tar archive.
        with open(tmpname, "wb"):
            pass
        self.assertRaises(tarfile.ReadError, tarfile.open, tmpname, self.mode)
        self.assertRaises(tarfile.ReadError, tarfile.open, tmpname) 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:10,代碼來源:test_tarfile.py

示例9: test_fail_comp

# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import ReadError [as 別名]
def test_fail_comp(self):
        # For Gzip and Bz2 Tests: fail with a ReadError on an uncompressed file.
        if self.mode == "r:":
            self.skipTest('needs a gz or bz2 mode')
        self.assertRaises(tarfile.ReadError, tarfile.open, tarname, self.mode)
        with open(tarname, "rb") as fobj:
            self.assertRaises(tarfile.ReadError, tarfile.open,
                              fileobj=fobj, mode=self.mode) 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:10,代碼來源:test_tarfile.py

示例10: _testfunc_fileobj

# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import ReadError [as 別名]
def _testfunc_fileobj(self, name, mode):
        try:
            tar = tarfile.open(name, mode, fileobj=open(name, "rb"))
        except tarfile.ReadError:
            self.fail()
        else:
            tar.close() 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:9,代碼來源:test_tarfile.py

示例11: _test_modes

# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import ReadError [as 別名]
def _test_modes(self, testfunc):
        testfunc(tarname, "r")
        testfunc(tarname, "r:")
        testfunc(tarname, "r:*")
        testfunc(tarname, "r|")
        testfunc(tarname, "r|*")

        if gzip:
            self.assertRaises(tarfile.ReadError, tarfile.open, tarname, mode="r:gz")
            self.assertRaises(tarfile.ReadError, tarfile.open, tarname, mode="r|gz")
            self.assertRaises(tarfile.ReadError, tarfile.open, gzipname, mode="r:")
            self.assertRaises(tarfile.ReadError, tarfile.open, gzipname, mode="r|")

            testfunc(gzipname, "r")
            testfunc(gzipname, "r:*")
            testfunc(gzipname, "r:gz")
            testfunc(gzipname, "r|*")
            testfunc(gzipname, "r|gz")

        if bz2:
            self.assertRaises(tarfile.ReadError, tarfile.open, tarname, mode="r:bz2")
            self.assertRaises(tarfile.ReadError, tarfile.open, tarname, mode="r|bz2")
            self.assertRaises(tarfile.ReadError, tarfile.open, bz2name, mode="r:")
            self.assertRaises(tarfile.ReadError, tarfile.open, bz2name, mode="r|")

            testfunc(bz2name, "r")
            testfunc(bz2name, "r:*")
            testfunc(bz2name, "r:bz2")
            testfunc(bz2name, "r|*")
            testfunc(bz2name, "r|bz2") 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:32,代碼來源:test_tarfile.py

示例12: test_truncated_longname

# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import ReadError [as 別名]
def test_truncated_longname(self):
        longname = self.subdir + "/" + "123/" * 125 + "longname"
        tarinfo = self.tar.getmember(longname)
        offset = tarinfo.offset
        self.tar.fileobj.seek(offset)
        fobj = StringIO.StringIO(self.tar.fileobj.read(3 * 512))
        self.assertRaises(tarfile.ReadError, tarfile.open, name="foo.tar", fileobj=fobj) 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:9,代碼來源:test_tarfile.py

示例13: test_append_gz

# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import ReadError [as 別名]
def test_append_gz(self):
        self._create_testtar("w:gz")
        self.assertRaises(tarfile.ReadError, tarfile.open, tmpname, "a") 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:5,代碼來源:test_tarfile.py

示例14: test_append_bz2

# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import ReadError [as 別名]
def test_append_bz2(self):
        self._create_testtar("w:bz2")
        self.assertRaises(tarfile.ReadError, tarfile.open, tmpname, "a")

    # Append mode is supposed to fail if the tarfile to append to
    # does not end with a zero block. 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:8,代碼來源:test_tarfile.py

示例15: _detect_filetype

# 需要導入模塊: import tarfile [as 別名]
# 或者: from tarfile import ReadError [as 別名]
def _detect_filetype(base_url):
    try:
        resp_obj = urlopen(base_url);
        resp = resp_obj.read()
        if "text" in resp_obj.headers['Content-Type']:
            logger.info("[+] Response of '%s' is HTML. - Content-Type: %s" % (base_url, resp_obj.headers['Content-Type']))
            return HttpImporter.WEB_ARCHIVE, resp

    except Exception as e:   # Base URL is not callable in GitHub /raw/ contents - returns 400 Error
        logger.info("[!] Response of '%s' triggered '%s'" % (base_url, e))
        return HttpImporter.WEB_ARCHIVE, None

    resp_io = io.BytesIO(resp)
    try:
        tar = tarfile.open(fileobj=resp_io, mode='r:*')
        logger.info("[+] Response of '%s' is a Tarball" % base_url)
        return HttpImporter.TAR_ARCHIVE, tar
    except tarfile.ReadError:
        logger.info("Response of '%s' is not a (compressed) tarball" % base_url)

    try:
        zip = zipfile.ZipFile(resp_io)
        logger.info("[+] Response of '%s' is a ZIP file" % base_url)
        return HttpImporter.ZIP_ARCHIVE, zip
    except zipfile.BadZipfile:
        logger.info("Response of '%s' is not a ZIP file" % base_url)

    raise IOError("Content of URL '%s' is Invalid" % base_url) 
開發者ID:operatorequals,項目名稱:httpimport,代碼行數:30,代碼來源:httpimport.py


注:本文中的tarfile.ReadError方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。