summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt/debfile.py6
-rw-r--r--tests/data/test_debs/gdebi-test13.debbin0 -> 720 bytes
-rw-r--r--tests/test_debfile.py5
3 files changed, 8 insertions, 3 deletions
diff --git a/apt/debfile.py b/apt/debfile.py
index e9be9672..3f4bca4b 100644
--- a/apt/debfile.py
+++ b/apt/debfile.py
@@ -27,7 +27,7 @@ import os
import sys
from apt_pkg import gettext as _
-from io import StringIO
+from io import BytesIO
class NoDebArchiveException(IOError):
@@ -637,9 +637,9 @@ class DebPackage(object):
data = part.extractdata(name)
# check for zip content
if name.endswith(".gz") and auto_decompress:
- io = StringIO(data)
+ io = BytesIO(data)
gz = gzip.GzipFile(fileobj=io)
- data = _("Automatically decompressed:\n\n")
+ data = _("Automatically decompressed:\n\n").encode("utf-8")
data += gz.read()
# auto-convert to hex
try:
diff --git a/tests/data/test_debs/gdebi-test13.deb b/tests/data/test_debs/gdebi-test13.deb
new file mode 100644
index 00000000..4e7a8289
--- /dev/null
+++ b/tests/data/test_debs/gdebi-test13.deb
Binary files differ
diff --git a/tests/test_debfile.py b/tests/test_debfile.py
index eae8038f..d6cc88b2 100644
--- a/tests/test_debfile.py
+++ b/tests/test_debfile.py
@@ -178,6 +178,11 @@ Description: testpackage for gdebi - contains usr/bin/binary for file reading
"./data/test_debs/testdep-same-arch_1.0-1_i386.deb")
self.assertTrue(same.check(), same._failure_string)
+ def test_get_content_gzip_data(self):
+ deb = apt.debfile.DebPackage("./data/test_debs/gdebi-test13.deb")
+ data = deb.data_content("./lala.gz")
+ self.assertEqual(data, "Automatically decompressed:\n\nlala\n")
+
if __name__ == "__main__":
#logging.basicConfig(level=logging.DEBUG)