summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2010-09-02 16:55:43 +0200
committerMichael Vogt <michael.vogt@ubuntu.com>2010-09-02 16:55:43 +0200
commit0d622864bf45b2826335b3be31330829f43db7cd (patch)
tree96578b8054647465b00eda526b4a5f3ca58523d8
parent96476d01e881f52d53a70f1ae700594a0f321056 (diff)
downloadpython-apt-0d622864bf45b2826335b3be31330829f43db7cd.tar.gz
merged patch from Samuel Lidén Borell to fix crash if there utf8
in the control file (LP: #624290) and add test
-rw-r--r--apt/debfile.py2
-rw-r--r--debian/changelog2
-rw-r--r--tests/data/test_debs/utf8-package_1.0-1_all.debbin0 -> 1150 bytes
-rw-r--r--tests/test_debfile.py7
4 files changed, 10 insertions, 1 deletions
diff --git a/apt/debfile.py b/apt/debfile.py
index 73f7d88e..1e7a66cc 100644
--- a/apt/debfile.py
+++ b/apt/debfile.py
@@ -66,7 +66,7 @@ class DebPackage(object):
self._debfile = apt_inst.DebFile(open(self.filename))
control = self._debfile.control.extractdata("control")
# hm, 'replace' is probably better but python2.6 test fail with that
- self._sections = apt_pkg.TagSection(control.decode("UTF-8", 'ignore'))
+ self._sections = apt_pkg.TagSection(control)
self.pkgname = self._sections["Package"]
def __getitem__(self, key):
diff --git a/debian/changelog b/debian/changelog
index 7fd04b41..d23bd54a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -24,6 +24,8 @@ python-apt (0.7.97) UNRELEASED; urgency=low
* add "provides" property to the apt.Version objects
* apt/debfile.py:
- fix error when reading binary content and add regresion test
+ * merged patch from Samuel Lidén Borell to fix crash if there utf8
+ in the control file (LP: #624290) and add test
-- Julian Andres Klode <jak@debian.org> Fri, 23 Jul 2010 16:14:39 +0200
diff --git a/tests/data/test_debs/utf8-package_1.0-1_all.deb b/tests/data/test_debs/utf8-package_1.0-1_all.deb
new file mode 100644
index 00000000..e0339c2e
--- /dev/null
+++ b/tests/data/test_debs/utf8-package_1.0-1_all.deb
Binary files differ
diff --git a/tests/test_debfile.py b/tests/test_debfile.py
index 42cda6f6..571c2ec9 100644
--- a/tests/test_debfile.py
+++ b/tests/test_debfile.py
@@ -1,4 +1,5 @@
#!/usr/bin/python
+# -*- coding: utf-8 -*-
#
# Copyright (C) 2010 Michael Vogt <mvo@ubuntu.com>
#
@@ -77,6 +78,12 @@ class TestDebfilee(unittest.TestCase):
"Unexpected result for package '%s' (got %s wanted %s)\n%s" % (
filename, res, expected_res, deb._failure_string))
+ def test_utf8_sections(self):
+ deb = apt.debfile.DebPackage(cache=self.cache)
+ deb.open(os.path.join("data","test_debs","utf8-package_1.0-1_all.deb"))
+ self.assertEqual(deb["Maintainer"],
+ "Samuel Lidén Borell <samuel@slbdata.se>")
+
def testContent(self):
# normal
deb = apt.debfile.DebPackage(cache=self.cache)