From 7e9c672702181dccad4d3e09c592329edd43f45d Mon Sep 17 00:00:00 2001 From: Bastian Kleineidam Date: Thu, 27 Jun 2013 22:16:55 +0200 Subject: [PATCH] Accept application/gzip as MIME type for newer libmagic versions. --- doc/changelog.txt | 5 ++++- patoolib/__init__.py | 1 + patoolib/util.py | 4 +++- tests/test_mime.py | 10 ++++------ 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/doc/changelog.txt b/doc/changelog.txt index 2d5e7ea..5dbfdb7 100644 --- a/doc/changelog.txt +++ b/doc/changelog.txt @@ -1,4 +1,7 @@ -1.2 "" (released xx.xx.2013) +1.2 "" (released 27.6.2013) + +* Fix detection of *.gz with newer libmagic versions. + Closes: GH bug #2 1.1 "Clerks" (released 7.4.2013) diff --git a/patoolib/__init__.py b/patoolib/__init__.py index 278cde3..5122b15 100644 --- a/patoolib/__init__.py +++ b/patoolib/__init__.py @@ -43,6 +43,7 @@ ArchiveCompressions = ('bzip2', 'compress', 'gzip', 'lzip', 'lzma', 'xz') # Map MIME types to archive format ArchiveMimetypes = { + 'application/gzip': 'gzip', 'application/java-archive': 'zip', 'application/rar': 'rar', 'application/vnd.ms-cab-compressed': 'cab', diff --git a/patoolib/util.py b/patoolib/util.py index a4ea99f..004aeea 100644 --- a/patoolib/util.py +++ b/patoolib/util.py @@ -226,7 +226,7 @@ def guess_mime (filename): Encoding2Mime = { - 'gzip': "application/x-gzip", + 'gzip': "application/gzip", 'bzip2': "application/x-bzip2", 'compress': "application/x-compress", 'lzma': "application/x-lzma", @@ -234,6 +234,8 @@ Encoding2Mime = { 'xz': "application/x-xz", } Mime2Encoding = dict([(_val, _key) for _key, _val in Encoding2Mime.items()]) +# libmagic before version 5.14 identified .gz files as application/x-gzip +Mime2Encoding['application/x-gzip'] = 'gzip' def guess_mime_mimedb (filename): diff --git a/tests/test_mime.py b/tests/test_mime.py index dac40c1..7845040 100644 --- a/tests/test_mime.py +++ b/tests/test_mime.py @@ -57,8 +57,8 @@ class TestMime (unittest.TestCase): self.mime_test_file("t.cpio.foo", "application/x-cpio") self.mime_test_file("t.deb", "application/x-debian-package") self.mime_test_file("t.deb.foo", "application/x-debian-package") - self.mime_test_file("t.txt.gz", "application/x-gzip") - self.mime_test_file("t.txt.gz.foo", "application/x-gzip") + self.mime_test_file("t.txt.gz", ("application/gzip", "application/x-gzip")) + self.mime_test_file("t.txt.gz.foo", ("application/gzip", "application/x-gzip")) self.mime_test_file("t.jar", "application/zip") self.mime_test_file("t.jar.foo", "application/zip") # file(1) does not recognize .lzma files @@ -85,8 +85,6 @@ class TestMime (unittest.TestCase): # file(1) does not recognize .lzma files #self.mime_test_file("t.tar.lzma", "application/x-tar", "lzma") #self.mime_test_file("t.tar.lzma.foo", "application/x-tar", "lzma") - self.mime_test_file("t.txt.gz", "application/x-gzip") - self.mime_test_file("t.txt.gz.foo", "application/x-gzip") self.mime_test_file("t.txt.xz", "application/x-xz") self.mime_test_file("t.txt.xz.foo", "application/x-xz") self.mime_test_file("t.txt.Z", "application/x-compress") @@ -164,7 +162,7 @@ class TestMime (unittest.TestCase): self.mime_test_mimedb("t.cab", "application/x-cab") self.mime_test_mimedb("t.cpio", "application/x-cpio") self.mime_test_mimedb("t.deb", "application/x-debian-package") - self.mime_test_mimedb("t.gz", "application/x-gzip") + self.mime_test_mimedb("t.gz", "application/gzip") self.mime_test_mimedb("t.jar", "application/java-archive") self.mime_test_mimedb("t.lzma", "application/x-lzma") self.mime_test_mimedb("t.txt.lz", "application/x-lzip") @@ -181,7 +179,7 @@ class TestMime (unittest.TestCase): self.mime_test_mimedb("t.taz", "application/x-tar", "gzip") self.mime_test_mimedb("t.tbz2", "application/x-tar", "bzip2") self.mime_test_mimedb("t.tgz", "application/x-tar", "gzip") - self.mime_test_mimedb("t.txt.gz", "application/x-gzip") + self.mime_test_mimedb("t.txt.gz", "application/gzip") self.mime_test_mimedb("t .xz", "application/x-xz") self.mime_test_mimedb("t.Z", "application/x-compress") self.mime_test_mimedb("t.zip", ("application/zip", "application/x-zip-compressed"))