Add tests for fakedbapi.
authorZac Medico <zmedico@gentoo.org>
Sat, 11 Jun 2011 02:08:46 +0000 (19:08 -0700)
committerZac Medico <zmedico@gentoo.org>
Sat, 11 Jun 2011 02:08:46 +0000 (19:08 -0700)
pym/portage/tests/dbapi/__init__.py [new file with mode: 0644]
pym/portage/tests/dbapi/__test__ [new file with mode: 0644]
pym/portage/tests/dbapi/test_fakedbapi.py [new file with mode: 0644]

diff --git a/pym/portage/tests/dbapi/__init__.py b/pym/portage/tests/dbapi/__init__.py
new file mode 100644 (file)
index 0000000..532918b
--- /dev/null
@@ -0,0 +1,2 @@
+# Copyright 2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
diff --git a/pym/portage/tests/dbapi/__test__ b/pym/portage/tests/dbapi/__test__
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/pym/portage/tests/dbapi/test_fakedbapi.py b/pym/portage/tests/dbapi/test_fakedbapi.py
new file mode 100644 (file)
index 0000000..ed24782
--- /dev/null
@@ -0,0 +1,42 @@
+# Copyright 2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+from portage.dbapi.virtual import fakedbapi
+from portage.package.ebuild.config import config
+from portage.tests import TestCase
+
+class TestFakedbapi(TestCase):
+
+       def testFakedbapi(self):
+               packages = (
+                       ("sys-apps/portage-2.1.10", {
+                               "EAPI"         : "2",
+                               "IUSE"         : "ipc doc",
+                               "repository"   : "gentoo",
+                               "SLOT"         : "0",
+                               "USE"          : "ipc",
+                       }),
+                       ("virtual/package-manager-0", {
+                               "EAPI"         : "0",
+                               "repository"   : "gentoo",
+                               "SLOT"         : "0",
+                       }),
+               )
+
+               match_tests = (
+                       ("sys-apps/portage:0[ipc]",             ["sys-apps/portage-2.1.10"]),
+                       ("sys-apps/portage:0[-ipc]",            []),
+                       ("sys-apps/portage:0[doc]",             []),
+                       ("sys-apps/portage:0[-doc]",            ["sys-apps/portage-2.1.10"]),
+                       ("sys-apps/portage:0::gentoo[ipc]",     ["sys-apps/portage-2.1.10"]),
+                       ("sys-apps/portage:0::multilib[ipc]",   []),
+                       ("virtual/package-manager",             ["virtual/package-manager-0"]),
+               )
+
+               fakedb = fakedbapi(settings=config(config_profile_path=""))
+               for cpv, metadata in packages:
+                       fakedb.cpv_inject(cpv, metadata=metadata)
+
+               for atom, expected_result in match_tests:
+                       result = []
+                       self.assertEqual( fakedb.match(atom), expected_result )