aboutsummaryrefslogtreecommitdiffstats
path: root/pym/portage/tests/dep/testAtom.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/portage/tests/dep/testAtom.py')
-rw-r--r--pym/portage/tests/dep/testAtom.py267
1 files changed, 135 insertions, 132 deletions
diff --git a/pym/portage/tests/dep/testAtom.py b/pym/portage/tests/dep/testAtom.py
index f5a7d3749..da58be27c 100644
--- a/pym/portage/tests/dep/testAtom.py
+++ b/pym/portage/tests/dep/testAtom.py
@@ -1,4 +1,4 @@
-# Copyright 2006, 2010 Gentoo Foundation
+# Copyright 2006-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
from portage.tests import TestCase
@@ -10,154 +10,157 @@ class TestAtom(TestCase):
def testAtom(self):
tests = (
- ( "=sys-apps/portage-2.1-r1:0[doc,a=,!b=,c?,!d?,-e]",
- ('=', 'sys-apps/portage', '2.1-r1', '0', '[doc,a=,!b=,c?,!d?,-e]', None), False, False ),
- ( "=sys-apps/portage-2.1-r1*:0[doc]",
- ('=*', 'sys-apps/portage', '2.1-r1', '0', '[doc]', None), False, False ),
- ( "sys-apps/portage:0[doc]",
- (None, 'sys-apps/portage', None, '0', '[doc]', None), False, False ),
- ( "sys-apps/portage:0[doc]",
- (None, 'sys-apps/portage', None, '0', '[doc]', None), False, False ),
- ( "*/*",
- (None, '*/*', None, None, None, None), True, False ),
- ( "=*/*-*9999*",
- ('=*', '*/*', '*9999*', None, None, None), True, False ),
- ( "=*/*-*9999*:0::repo_name",
- ('=*', '*/*', '*9999*', '0', None, 'repo_name'), True, True ),
- ( "sys-apps/*",
- (None, 'sys-apps/*', None, None, None, None), True, False ),
- ( "*/portage",
- (None, '*/portage', None, None, None, None), True, False ),
- ( "s*s-*/portage:1",
- (None, 's*s-*/portage', None, '1', None, None), True, False ),
- ( "*/po*ge:2",
- (None, '*/po*ge', None, '2', None, None), True, False ),
- ( "!dev-libs/A",
- (None, 'dev-libs/A', None, None, None, None), True, True ),
- ( "!!dev-libs/A",
- (None, 'dev-libs/A', None, None, None, None), True, True ),
- ( "!!dev-libs/A",
- (None, 'dev-libs/A', None, None, None, None), True, True ),
- ( "dev-libs/A[foo(+)]",
- (None, 'dev-libs/A', None, None, "[foo(+)]", None), True, True ),
- ( "dev-libs/A[a(+),b(-)=,!c(+)=,d(-)?,!e(+)?,-f(-)]",
- (None, 'dev-libs/A', None, None, "[a(+),b(-)=,!c(+)=,d(-)?,!e(+)?,-f(-)]", None), True, True ),
- ( "dev-libs/A:2[a(+),b(-)=,!c(+)=,d(-)?,!e(+)?,-f(-)]",
- (None, 'dev-libs/A', None, "2", "[a(+),b(-)=,!c(+)=,d(-)?,!e(+)?,-f(-)]", None), True, True ),
-
- ( "=sys-apps/portage-2.1-r1:0::repo_name[doc,a=,!b=,c?,!d?,-e]",
- ('=', 'sys-apps/portage', '2.1-r1', '0', '[doc,a=,!b=,c?,!d?,-e]', 'repo_name'), False, True ),
- ( "=sys-apps/portage-2.1-r1*:0::repo_name[doc]",
- ('=*', 'sys-apps/portage', '2.1-r1', '0', '[doc]', 'repo_name'), False, True ),
- ( "sys-apps/portage:0::repo_name[doc]",
- (None, 'sys-apps/portage', None, '0', '[doc]', 'repo_name'), False, True ),
-
- ( "*/*::repo_name",
- (None, '*/*', None, None, None, 'repo_name'), True, True ),
- ( "sys-apps/*::repo_name",
- (None, 'sys-apps/*', None, None, None, 'repo_name'), True, True ),
- ( "*/portage::repo_name",
- (None, '*/portage', None, None, None, 'repo_name'), True, True ),
- ( "s*s-*/portage:1::repo_name",
- (None, 's*s-*/portage', None, '1', None, 'repo_name'), True, True ),
+ ("=sys-apps/portage-2.1-r1:0[doc,a=,!b=,c?,!d?,-e]",
+ ('=', 'sys-apps/portage', '2.1-r1', '0', '[doc,a=,!b=,c?,!d?,-e]', None), False, False),
+ ("=sys-apps/portage-2.1-r1*:0[doc]",
+ ('=*', 'sys-apps/portage', '2.1-r1', '0', '[doc]', None), False, False),
+ ("sys-apps/portage:0[doc]",
+ (None, 'sys-apps/portage', None, '0', '[doc]', None), False, False),
+ ("sys-apps/portage:0[doc]",
+ (None, 'sys-apps/portage', None, '0', '[doc]', None), False, False),
+ ("*/*",
+ (None, '*/*', None, None, None, None), True, False),
+ ("=*/*-*9999*",
+ ('=*', '*/*', '*9999*', None, None, None), True, False),
+ ("=*/*-*9999*:0::repo_name",
+ ('=*', '*/*', '*9999*', '0', None, 'repo_name'), True, True),
+ ("=*/*-*_beta*",
+ ('=*', '*/*', '*_beta*', None, None, None), True, False),
+ ("=*/*-*_beta*:0::repo_name",
+ ('=*', '*/*', '*_beta*', '0', None, 'repo_name'), True, True),
+ ("sys-apps/*",
+ (None, 'sys-apps/*', None, None, None, None), True, False),
+ ("*/portage",
+ (None, '*/portage', None, None, None, None), True, False),
+ ("s*s-*/portage:1",
+ (None, 's*s-*/portage', None, '1', None, None), True, False),
+ ("*/po*ge:2",
+ (None, '*/po*ge', None, '2', None, None), True, False),
+ ("!dev-libs/A",
+ (None, 'dev-libs/A', None, None, None, None), True, True),
+ ("!!dev-libs/A",
+ (None, 'dev-libs/A', None, None, None, None), True, True),
+ ("!!dev-libs/A",
+ (None, 'dev-libs/A', None, None, None, None), True, True),
+ ("dev-libs/A[foo(+)]",
+ (None, 'dev-libs/A', None, None, "[foo(+)]", None), True, True),
+ ("dev-libs/A[a(+),b(-)=,!c(+)=,d(-)?,!e(+)?,-f(-)]",
+ (None, 'dev-libs/A', None, None, "[a(+),b(-)=,!c(+)=,d(-)?,!e(+)?,-f(-)]", None), True, True),
+ ("dev-libs/A:2[a(+),b(-)=,!c(+)=,d(-)?,!e(+)?,-f(-)]",
+ (None, 'dev-libs/A', None, "2", "[a(+),b(-)=,!c(+)=,d(-)?,!e(+)?,-f(-)]", None), True, True),
+
+ ("=sys-apps/portage-2.1-r1:0::repo_name[doc,a=,!b=,c?,!d?,-e]",
+ ('=', 'sys-apps/portage', '2.1-r1', '0', '[doc,a=,!b=,c?,!d?,-e]', 'repo_name'), False, True),
+ ("=sys-apps/portage-2.1-r1*:0::repo_name[doc]",
+ ('=*', 'sys-apps/portage', '2.1-r1', '0', '[doc]', 'repo_name'), False, True),
+ ("sys-apps/portage:0::repo_name[doc]",
+ (None, 'sys-apps/portage', None, '0', '[doc]', 'repo_name'), False, True),
+
+ ("*/*::repo_name",
+ (None, '*/*', None, None, None, 'repo_name'), True, True),
+ ("sys-apps/*::repo_name",
+ (None, 'sys-apps/*', None, None, None, 'repo_name'), True, True),
+ ("*/portage::repo_name",
+ (None, '*/portage', None, None, None, 'repo_name'), True, True),
+ ("s*s-*/portage:1::repo_name",
+ (None, 's*s-*/portage', None, '1', None, 'repo_name'), True, True),
)
-
+
tests_xfail = (
- ( Atom("sys-apps/portage"), False, False ),
- ( "cat/pkg[a!]", False, False ),
- ( "cat/pkg[!a]", False, False ),
- ( "cat/pkg[!a!]", False, False ),
- ( "cat/pkg[!a-]", False, False ),
- ( "cat/pkg[-a=]", False, False ),
- ( "cat/pkg[-a?]", False, False ),
- ( "cat/pkg[-a!]", False, False ),
- ( "cat/pkg[=a]", False, False ),
- ( "cat/pkg[=a=]", False, False ),
- ( "cat/pkg[=a?]", False, False ),
- ( "cat/pkg[=a!]", False, False ),
- ( "cat/pkg[=a-]", False, False ),
- ( "cat/pkg[?a]", False, False ),
- ( "cat/pkg[?a=]", False, False ),
- ( "cat/pkg[?a?]", False, False ),
- ( "cat/pkg[?a!]", False, False ),
- ( "cat/pkg[?a-]", False, False ),
- ( "sys-apps/portage[doc]:0", False, False ),
- ( "*/*", False, False ),
- ( "sys-apps/*", False, False ),
- ( "*/portage", False, False ),
- ( "*/**", True, False ),
- ( "*/portage[use]", True, False ),
- ( "cat/pkg[a()]", False, False ),
- ( "cat/pkg[a(]", False, False ),
- ( "cat/pkg[a)]", False, False ),
- ( "cat/pkg[a(,b]", False, False ),
- ( "cat/pkg[a),b]", False, False ),
- ( "cat/pkg[a(*)]", False, False ),
- ( "cat/pkg[a(*)]", True, False ),
- ( "cat/pkg[a(+-)]", False, False ),
- ( "cat/pkg[a()]", False, False ),
- ( "cat/pkg[(+)a]", False, False ),
- ( "cat/pkg[a=(+)]", False, False ),
- ( "cat/pkg[!(+)a=]", False, False ),
- ( "cat/pkg[!a=(+)]", False, False ),
- ( "cat/pkg[a?(+)]", False, False ),
- ( "cat/pkg[!a?(+)]", False, False ),
- ( "cat/pkg[!(+)a?]", False, False ),
- ( "cat/pkg[-(+)a]", False, False ),
- ( "cat/pkg[a(+),-a]", False, False ),
- ( "cat/pkg[a(-),-a]", False, False ),
- ( "cat/pkg[-a,a(+)]", False, False ),
- ( "cat/pkg[-a,a(-)]", False, False ),
- ( "cat/pkg[-a(+),a(-)]", False, False ),
- ( "cat/pkg[-a(-),a(+)]", False, False ),
- ( "sys-apps/portage[doc]::repo_name", False, False ),
- ( "sys-apps/portage:0[doc]::repo_name", False, False ),
- ( "sys-apps/portage[doc]:0::repo_name", False, False ),
- ( "=sys-apps/portage-2.1-r1:0::repo_name[doc,a=,!b=,c?,!d?,-e]", False, False ),
- ( "=sys-apps/portage-2.1-r1*:0::repo_name[doc]", False, False ),
- ( "sys-apps/portage:0::repo_name[doc]", False, False ),
- ( "*/*::repo_name", True, False ),
+ (Atom("sys-apps/portage"), False, False),
+ ("cat/pkg[a!]", False, False),
+ ("cat/pkg[!a]", False, False),
+ ("cat/pkg[!a!]", False, False),
+ ("cat/pkg[!a-]", False, False),
+ ("cat/pkg[-a=]", False, False),
+ ("cat/pkg[-a?]", False, False),
+ ("cat/pkg[-a!]", False, False),
+ ("cat/pkg[=a]", False, False),
+ ("cat/pkg[=a=]", False, False),
+ ("cat/pkg[=a?]", False, False),
+ ("cat/pkg[=a!]", False, False),
+ ("cat/pkg[=a-]", False, False),
+ ("cat/pkg[?a]", False, False),
+ ("cat/pkg[?a=]", False, False),
+ ("cat/pkg[?a?]", False, False),
+ ("cat/pkg[?a!]", False, False),
+ ("cat/pkg[?a-]", False, False),
+ ("sys-apps/portage[doc]:0", False, False),
+ ("*/*", False, False),
+ ("sys-apps/*", False, False),
+ ("*/portage", False, False),
+ ("*/**", True, False),
+ ("*/portage[use]", True, False),
+ ("cat/pkg[a()]", False, False),
+ ("cat/pkg[a(]", False, False),
+ ("cat/pkg[a)]", False, False),
+ ("cat/pkg[a(,b]", False, False),
+ ("cat/pkg[a),b]", False, False),
+ ("cat/pkg[a(*)]", False, False),
+ ("cat/pkg[a(*)]", True, False),
+ ("cat/pkg[a(+-)]", False, False),
+ ("cat/pkg[a()]", False, False),
+ ("cat/pkg[(+)a]", False, False),
+ ("cat/pkg[a=(+)]", False, False),
+ ("cat/pkg[!(+)a=]", False, False),
+ ("cat/pkg[!a=(+)]", False, False),
+ ("cat/pkg[a?(+)]", False, False),
+ ("cat/pkg[!a?(+)]", False, False),
+ ("cat/pkg[!(+)a?]", False, False),
+ ("cat/pkg[-(+)a]", False, False),
+ ("cat/pkg[a(+),-a]", False, False),
+ ("cat/pkg[a(-),-a]", False, False),
+ ("cat/pkg[-a,a(+)]", False, False),
+ ("cat/pkg[-a,a(-)]", False, False),
+ ("cat/pkg[-a(+),a(-)]", False, False),
+ ("cat/pkg[-a(-),a(+)]", False, False),
+ ("sys-apps/portage[doc]::repo_name", False, False),
+ ("sys-apps/portage:0[doc]::repo_name", False, False),
+ ("sys-apps/portage[doc]:0::repo_name", False, False),
+ ("=sys-apps/portage-2.1-r1:0::repo_name[doc,a=,!b=,c?,!d?,-e]", False, False),
+ ("=sys-apps/portage-2.1-r1*:0::repo_name[doc]", False, False),
+ ("sys-apps/portage:0::repo_name[doc]", False, False),
+ ("*/*::repo_name", True, False),
)
for atom, parts, allow_wildcard, allow_repo in tests:
a = Atom(atom, allow_wildcard=allow_wildcard, allow_repo=allow_repo)
op, cp, ver, slot, use, repo = parts
- self.assertEqual( op, a.operator,
- msg="Atom('%s').operator = %s == '%s'" % ( atom, a.operator, op ) )
- self.assertEqual( cp, a.cp,
- msg="Atom('%s').cp = %s == '%s'" % ( atom, a.cp, cp ) )
+ self.assertEqual(op, a.operator,
+ msg="Atom('%s').operator = %s == '%s'" % (atom, a.operator, op))
+ self.assertEqual(cp, a.cp,
+ msg="Atom('%s').cp = %s == '%s'" % (atom, a.cp, cp))
if ver is not None:
cpv = "%s-%s" % (cp, ver)
else:
cpv = cp
- self.assertEqual( cpv, a.cpv,
- msg="Atom('%s').cpv = %s == '%s'" % ( atom, a.cpv, cpv ) )
- self.assertEqual( slot, a.slot,
- msg="Atom('%s').slot = %s == '%s'" % ( atom, a.slot, slot ) )
- self.assertEqual( repo, a.repo,
- msg="Atom('%s').repo == %s == '%s'" % ( atom, a.repo, repo ) )
+ self.assertEqual(cpv, a.cpv,
+ msg="Atom('%s').cpv = %s == '%s'" % (atom, a.cpv, cpv))
+ self.assertEqual(slot, a.slot,
+ msg="Atom('%s').slot = %s == '%s'" % (atom, a.slot, slot))
+ self.assertEqual(repo, a.repo,
+ msg="Atom('%s').repo == %s == '%s'" % (atom, a.repo, repo))
if a.use:
returned_use = str(a.use)
else:
returned_use = None
- self.assertEqual( use, returned_use,
- msg="Atom('%s').use = %s == '%s'" % ( atom, returned_use, use ) )
+ self.assertEqual(use, returned_use,
+ msg="Atom('%s').use = %s == '%s'" % (atom, returned_use, use))
for atom, allow_wildcard, allow_repo in tests_xfail:
- self.assertRaisesMsg(atom, (InvalidAtom, TypeError), Atom, atom, \
+ self.assertRaisesMsg(atom, (InvalidAtom, TypeError), Atom, atom,
allow_wildcard=allow_wildcard, allow_repo=allow_repo)
def testSlotAbiAtom(self):
tests = (
- ("virtual/ffmpeg:0/53", "4-slot-abi", {"slot": "0", "slot_abi": "53", "slot_abi_op": None}),
- ("virtual/ffmpeg:0/53=", "4-slot-abi", {"slot": "0", "slot_abi": "53", "slot_abi_op": "="}),
- ("virtual/ffmpeg:=", "4-slot-abi", {"slot": None, "slot_abi": None, "slot_abi_op": "="}),
- ("virtual/ffmpeg:0=", "4-slot-abi", {"slot": "0", "slot_abi": None, "slot_abi_op": "="}),
- ("virtual/ffmpeg:*", "4-slot-abi", {"slot": None, "slot_abi": None, "slot_abi_op": "*"}),
- ("virtual/ffmpeg:0*", "4-slot-abi", {"slot": "0", "slot_abi": None, "slot_abi_op": "*"}),
- ("virtual/ffmpeg:0", "4-slot-abi", {"slot": "0", "slot_abi": None, "slot_abi_op": None}),
- ("virtual/ffmpeg", "4-slot-abi", {"slot": None, "slot_abi": None, "slot_abi_op": None}),
+ ("virtual/ffmpeg:0/53", "4-slot-abi", {"slot": "0", "sub_slot": "53", "slot_operator": None}),
+ ("virtual/ffmpeg:0/53=", "4-slot-abi", {"slot": "0", "sub_slot": "53", "slot_operator": "="}),
+ ("virtual/ffmpeg:=", "4-slot-abi", {"slot": None, "sub_slot": None, "slot_operator": "="}),
+ ("virtual/ffmpeg:0=", "4-slot-abi", {"slot": "0", "sub_slot": None, "slot_operator": "="}),
+ ("virtual/ffmpeg:*", "4-slot-abi", {"slot": None, "sub_slot": None, "slot_operator": "*"}),
+ ("virtual/ffmpeg:0", "4-slot-abi", {"slot": "0", "sub_slot": None, "slot_operator": None}),
+ ("virtual/ffmpeg", "4-slot-abi", {"slot": None, "sub_slot": None, "slot_operator": None}),
)
for atom, eapi, parts in tests:
@@ -165,7 +168,7 @@ class TestAtom(TestCase):
for k, v in parts.items():
self.assertEqual(v, getattr(a, k),
msg="Atom('%s').%s = %s == '%s'" %
- (atom, k, getattr(a, k), v ))
+ (atom, k, getattr(a, k), v))
def test_intersects(self):
test_cases = (
@@ -182,7 +185,7 @@ class TestAtom(TestCase):
)
for atom, other, expected_result in test_cases:
- self.assertEqual(Atom(atom).intersects(Atom(other)), expected_result, \
+ self.assertEqual(Atom(atom).intersects(Atom(other)), expected_result,
"%s and %s should intersect: %s" % (atom, other, expected_result))
def test_violated_conditionals(self):
@@ -276,7 +279,7 @@ class TestAtom(TestCase):
for atom, other_use, iuse, parent_use in test_cases_xfail:
a = Atom(atom)
validator = use_flag_validator(iuse)
- self.assertRaisesMsg(atom, InvalidAtom, \
+ self.assertRaisesMsg(atom, InvalidAtom,
a.violated_conditionals, other_use, validator.is_valid_flag, parent_use)
def test_evaluate_conditionals(self):
@@ -325,9 +328,9 @@ class TestAtom(TestCase):
("dev-libs/A[a,b=,!c=,d?,!e?,-f]", ["d", "e", "f"], [], "dev-libs/A[a,b,-b,c,-c,-e,-f]"),
("dev-libs/A[a,b=,!c=,d?,!e?,-f]", [], ["d", "e", "f"], "dev-libs/A[a,b,-b,c,-c,d,-f]"),
- ("dev-libs/A[a(-),b(+)=,!c(-)=,d(+)?,!e(-)?,-f(+)]", \
+ ("dev-libs/A[a(-),b(+)=,!c(-)=,d(+)?,!e(-)?,-f(+)]",
["a", "b", "c", "d", "e", "f"], [], "dev-libs/A[a(-),-b(+),c(-),-e(-),-f(+)]"),
- ("dev-libs/A[a(+),b(-)=,!c(+)=,d(-)?,!e(+)?,-f(-)]", \
+ ("dev-libs/A[a(+),b(-)=,!c(+)=,d(-)?,!e(+)?,-f(-)]",
[], ["a", "b", "c", "d", "e", "f"], "dev-libs/A[a(+),b(-),-c(+),d(-),-f(-)]"),
)