diff options
| author | Julian Andres Klode <jak@debian.org> | 2013-10-21 10:49:29 +0200 |
|---|---|---|
| committer | Julian Andres Klode <jak@debian.org> | 2013-10-21 10:49:29 +0200 |
| commit | c7fd83fdfca918a7cf0b416d341bf7687a11792f (patch) | |
| tree | df9771523127783ca15e01d209c3897936bf05cd /tests | |
| parent | 01995674f11c2ce21d4daf1b82160fc60215abc4 (diff) | |
| download | python-apt-c7fd83fdfca918a7cf0b416d341bf7687a11792f.tar.gz | |
apt/debfile.py: Pass strip_multi_arch=False to parse_depends.
Patch by Michael, tests derived from the ones provided by the
reporter.
I included the test debs without the source package, as for our
use case, all needed "source code" is included in the package
itself anyway.
Reported-By: Francois Gouget <fgouget@free.fr>
Closes: #717859
Closes: #717861
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/data/test_debs/testdep-allowed-any_1.0-1_i386.deb | bin | 0 -> 1128 bytes | |||
| -rw-r--r-- | tests/data/test_debs/testdep-same-arch_1.0-1_i386.deb | bin | 0 -> 1236 bytes | |||
| -rw-r--r-- | tests/data/test_debs/var/lib/dpkg/status | 39 | ||||
| -rw-r--r-- | tests/test_debfile.py | 17 |
4 files changed, 56 insertions, 0 deletions
diff --git a/tests/data/test_debs/testdep-allowed-any_1.0-1_i386.deb b/tests/data/test_debs/testdep-allowed-any_1.0-1_i386.deb Binary files differnew file mode 100644 index 00000000..c56f8192 --- /dev/null +++ b/tests/data/test_debs/testdep-allowed-any_1.0-1_i386.deb diff --git a/tests/data/test_debs/testdep-same-arch_1.0-1_i386.deb b/tests/data/test_debs/testdep-same-arch_1.0-1_i386.deb Binary files differnew file mode 100644 index 00000000..872f3b6f --- /dev/null +++ b/tests/data/test_debs/testdep-same-arch_1.0-1_i386.deb diff --git a/tests/data/test_debs/var/lib/dpkg/status b/tests/data/test_debs/var/lib/dpkg/status index f0c48151..5c2c48a0 100644 --- a/tests/data/test_debs/var/lib/dpkg/status +++ b/tests/data/test_debs/var/lib/dpkg/status @@ -51,3 +51,42 @@ Description: Debian configuration management system Debconf is a configuration management system for debian packages. Packages use Debconf to ask questions when they are installed. Python-Version: 2.6, 3.1 + +Package: testdep-same +Status: install ok installed +Source: testdep +Version: 1.0-1 +Architecture: amd64 +Maintainer: Francois Gouget <fgouget@codeweavers.com> +Installed-Size: 25 +Provides: testdep-virtual-same +Section: unknown +Priority: extra +Multi-Arch: same +Description: Multi-arch = same package, no dependency + This is a multiarch package that can only satisfy dependencies for the same + architecture. But multiple instances of this package can be co-installed, + one for each architecture. + . + Library and development packages typically fall into this category. + +Package: testdep-allowed +Status: install ok installed +Source: testdep +Version: 1.0-1 +Architecture: amd64 +Maintainer: Francois Gouget <fgouget@codeweavers.com> +Installed-Size: 25 +Provides: testdep-virtual-allowed +Section: unknown +Priority: extra +Multi-Arch: allowed +Description: Multi-arch = allowed package, no dependency + This is a multiarch package. By default it can only satisfy dependencies for + packages of the same architecture but that can be changed with ':any' + dependencies. + . + It can only be installed for one architecture at a time. Trying to install the + same package for another architecture will remove the first one. + . + Packages providing tools or shells typically fall into this category. diff --git a/tests/test_debfile.py b/tests/test_debfile.py index 2ae73a45..3e933944 100644 --- a/tests/test_debfile.py +++ b/tests/test_debfile.py @@ -137,6 +137,23 @@ Description: testpackage for gdebi - contains usr/bin/binary for file reading deb = apt.debfile.DebPackage("./data/test_debs/data-tar-xz.deb") self.assertTrue("Package" in deb) + def test_multi_arch_allowed(self): + apt_pkg.config["APT::Architectures::"] = "i386" + apt_pkg.config["APT::Architectures::"] = "amd64" + apt_pkg.config["APT::Architecture"] = "amd64" + apt_pkg.init_system() + + allowed_any = apt.debfile.DebPackage("./data/test_debs/testdep-allowed-any_1.0-1_i386.deb") + self.assertTrue(allowed_any.check(), allowed_any._failure_string) + + def test_multi_arch_same(self): + apt_pkg.config["APT::Architectures::"] = "i386" + apt_pkg.config["APT::Architectures::"] = "amd64" + apt_pkg.config["APT::Architecture"] = "amd64" + apt_pkg.init_system() + same = apt.debfile.DebPackage("./data/test_debs/testdep-same-arch_1.0-1_i386.deb") + self.assertTrue(same.check(), same._failure_string) + if __name__ == "__main__": #logging.basicConfig(level=logging.DEBUG) |
