summaryrefslogtreecommitdiffstats
path: root/tests/test_debfile_multiarch.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_debfile_multiarch.py')
-rw-r--r--tests/test_debfile_multiarch.py63
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/test_debfile_multiarch.py b/tests/test_debfile_multiarch.py
new file mode 100644
index 0000000..24f0265
--- /dev/null
+++ b/tests/test_debfile_multiarch.py
@@ -0,0 +1,63 @@
+#!/usr/bin/python3
+#
+# Copyright (C) 2010 Michael Vogt <mvo@ubuntu.com>
+#
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved.
+"""Unit tests for verifying the correctness of DebPackage in apt.debfile."""
+import sys
+import unittest
+
+from test_all import get_library_dir
+
+libdir = get_library_dir()
+if libdir:
+ sys.path.insert(0, libdir)
+import apt_pkg
+import testcommon
+
+import apt
+import apt.debfile
+
+
+class TestDebfileMultiarch(testcommon.TestCase):
+ """test the multiarch debfile"""
+
+ def test_multiarch_deb_check(self):
+ if apt_pkg.get_architectures() != ["amd64", "i386"]:
+ # TODO: use unittest.skip
+ # logging.warning("skipping test because running on a "
+ # "non-multiarch system")
+ return
+ deb = apt.debfile.DebPackage("./data/test_debs/multiarch-test1_i386.deb")
+ deb.check()
+ missing = deb.missing_deps
+ # print missing
+ self.assertFalse("dpkg:i386" in missing)
+
+ @unittest.skip("BROKEN, lib3ds-1-3 is m-a now")
+ def test_multiarch_conflicts(self):
+ cache = apt.Cache()
+ # WARNING: this assumes that lib3ds-1-3 is a non-multiarch lib
+ # use "lib3ds-1-3" as a test to see if non-multiach lib conflicts work
+ canary = "lib3ds-1-3"
+ if canary not in cache:
+ # TODO: use unittest.skip
+ # logging.warning("skipping test because %s is missing" % canary)
+ return
+ cache[canary].mark_install()
+ deb = apt.debfile.DebPackage(
+ "./data/test_debs/multiarch-test1_i386.deb", cache=cache
+ )
+ # this deb should now not be installable
+ installable = deb.check()
+ # print deb._failure_string
+ self.assertFalse(installable)
+ self.assertEqual(
+ deb._failure_string, "Conflicts with the installed package 'lib3ds-1-3'"
+ )
+
+
+if __name__ == "__main__":
+ unittest.main()