summaryrefslogtreecommitdiffstats
path: root/pym/portage/tests/dep
diff options
context:
space:
mode:
authorSebastian Luther <SebastianLuther@gmx.de>2010-09-14 20:26:17 +0200
committerZac Medico <zmedico@gentoo.org>2010-09-14 18:05:54 -0700
commit0f2e8db77193a4eba48bfce0848bc857fc9f5c2d (patch)
treec91cb0b02912f503bcc7f28832f2416ac773662d /pym/portage/tests/dep
parentc5e2cab7a6904295fa74ca3be42fc37e898c9c85 (diff)
downloadportage-0f2e8db77193a4eba48bfce0848bc857fc9f5c2d.tar.gz
portage-0f2e8db77193a4eba48bfce0848bc857fc9f5c2d.tar.bz2
portage-0f2e8db77193a4eba48bfce0848bc857fc9f5c2d.zip
portage.dep: Add support for ::repo syntax to all functions and classes
This also adds the dep_getrepo() function
Diffstat (limited to 'pym/portage/tests/dep')
-rw-r--r--pym/portage/tests/dep/testAtom.py151
-rw-r--r--pym/portage/tests/dep/test_match_from_list.py20
2 files changed, 99 insertions, 72 deletions
diff --git a/pym/portage/tests/dep/testAtom.py b/pym/portage/tests/dep/testAtom.py
index 31999dc2c..a1dea8c1f 100644
--- a/pym/portage/tests/dep/testAtom.py
+++ b/pym/portage/tests/dep/testAtom.py
@@ -11,90 +11,103 @@ class TestAtom(TestCase):
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]'), False ),
+ ('=', '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]'), False ),
+ ('=*', 'sys-apps/portage', '2.1-r1', '0', '[doc]', None), False, False ),
( "sys-apps/portage:0[doc]",
- (None, 'sys-apps/portage', None, '0', '[doc]'), False ),
+ (None, 'sys-apps/portage', None, '0', '[doc]', None), False, False ),
( "sys-apps/portage:0[doc]",
- (None, 'sys-apps/portage', None, '0', '[doc]'), False ),
+ (None, 'sys-apps/portage', None, '0', '[doc]', None), False, False ),
( "*/*",
- (None, '*/*', None, None, None), True ),
+ (None, '*/*', None, None, None, None), True, False ),
( "sys-apps/*",
- (None, 'sys-apps/*', None, None, None), True ),
+ (None, 'sys-apps/*', None, None, None, None), True, False ),
( "*/portage",
- (None, '*/portage', None, None, None), True ),
+ (None, '*/portage', None, None, None, None), True, False ),
( "s*s-*/portage:1",
- (None, 's*s-*/portage', None, '1', None), True ),
+ (None, 's*s-*/portage', None, '1', None, None), True, False ),
( "*/po*ge:2",
- (None, '*/po*ge', None, '2', None), True ),
+ (None, '*/po*ge', None, '2', None, None), True, False ),
( "!dev-libs/A",
- (None, 'dev-libs/A', None, None, None), True ),
+ (None, 'dev-libs/A', None, None, None, None), True, True ),
( "!!dev-libs/A",
- (None, 'dev-libs/A', None, None, None), True ),
+ (None, 'dev-libs/A', None, None, None, None), True, True ),
( "!!dev-libs/A",
- (None, 'dev-libs/A', None, None, None), True ),
+ (None, 'dev-libs/A', None, None, None, None), True, True ),
( "dev-libs/A[foo(+)]",
- (None, 'dev-libs/A', None, None, "[foo(+)]"), True ),
+ (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(-)]"), True ),
+ (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(-)]"), True ),
+ (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 ),
)
tests_xfail = (
- ( Atom("sys-apps/portage"), False ),
- ( "cat/pkg[a!]", False ),
- ( "cat/pkg[!a]", False ),
- ( "cat/pkg[!a!]", False ),
- ( "cat/pkg[!a-]", False ),
- ( "cat/pkg[-a=]", False ),
- ( "cat/pkg[-a?]", False ),
- ( "cat/pkg[-a!]", False ),
- ( "cat/pkg[=a]", False ),
- ( "cat/pkg[=a=]", False ),
- ( "cat/pkg[=a?]", False ),
- ( "cat/pkg[=a!]", False ),
- ( "cat/pkg[=a-]", False ),
- ( "cat/pkg[?a]", False ),
- ( "cat/pkg[?a=]", False ),
- ( "cat/pkg[?a?]", False ),
- ( "cat/pkg[?a!]", False ),
- ( "cat/pkg[?a-]", False ),
- ( "sys-apps/portage[doc]:0", False ),
- ( "*/*", False ),
- ( "sys-apps/*", False ),
- ( "*/portage", False ),
- ( "*/**", True ),
- ( "*/portage[use]", True ),
- ( "cat/pkg[a()]", False ),
- ( "cat/pkg[a(]", False ),
- ( "cat/pkg[a)]", False ),
- ( "cat/pkg[a(,b]", False ),
- ( "cat/pkg[a),b]", False ),
- ( "cat/pkg[a(*)]", False ),
- ( "cat/pkg[a(*)]", True ),
- ( "cat/pkg[a(+-)]", False ),
- ( "cat/pkg[a()]", False ),
- ( "cat/pkg[(+)a]", False ),
- ( "cat/pkg[a=(+)]", False ),
- ( "cat/pkg[!(+)a=]", False ),
- ( "cat/pkg[!a=(+)]", False ),
- ( "cat/pkg[a?(+)]", False ),
- ( "cat/pkg[!a?(+)]", False ),
- ( "cat/pkg[!(+)a?]", False ),
- ( "cat/pkg[-(+)a]", False ),
- ( "cat/pkg[a(+),-a]", False ),
- ( "cat/pkg[a(-),-a]", False ),
- ( "cat/pkg[-a,a(+)]", False ),
- ( "cat/pkg[-a,a(-)]", False ),
- ( "cat/pkg[-a(+),a(-)]", False ),
- ( "cat/pkg[-a(-),a(+)]", 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 ),
)
- for atom, parts, allow_wildcard in tests:
- a = Atom(atom, allow_wildcard=allow_wildcard)
- op, cp, ver, slot, use = parts
+ 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,
@@ -107,6 +120,9 @@ class TestAtom(TestCase):
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:
@@ -114,8 +130,9 @@ class TestAtom(TestCase):
self.assertEqual( use, returned_use,
msg="Atom('%s').use = %s == '%s'" % ( atom, returned_use, use ) )
- for atom, allow_wildcard in tests_xfail:
- self.assertRaisesMsg(atom, (InvalidAtom, TypeError), Atom, atom, allow_wildcard=allow_wildcard)
+ for atom, allow_wildcard, allow_repo in tests_xfail:
+ self.assertRaisesMsg(atom, (InvalidAtom, TypeError), Atom, atom, \
+ allow_wildcard=allow_wildcard, allow_repo=allow_repo)
def test_intersects(self):
test_cases = (
diff --git a/pym/portage/tests/dep/test_match_from_list.py b/pym/portage/tests/dep/test_match_from_list.py
index 50b2b4a51..afba4141f 100644
--- a/pym/portage/tests/dep/test_match_from_list.py
+++ b/pym/portage/tests/dep/test_match_from_list.py
@@ -3,7 +3,7 @@
import sys
from portage.tests import TestCase
-from portage.dep import Atom, match_from_list
+from portage.dep import Atom, match_from_list, _repo_separator
from portage.versions import catpkgsplit
if sys.hexversion >= 0x3000000:
@@ -14,11 +14,12 @@ class Package(object):
Provides a minimal subset of attributes of _emerge.Package.Package
"""
def __init__(self, atom):
- atom = Atom(atom)
+ atom = Atom(atom, allow_repo=True)
self.cp = atom.cp
self.cpv = atom.cpv
self.cpv_split = catpkgsplit(self.cpv)
self.slot = atom.slot
+ self.repo = atom.repo
if atom.use:
self.use = self._use_class(atom.use.enabled)
self.iuse = self._iuse_class(atom.use.required)
@@ -37,7 +38,6 @@ class Package(object):
def is_valid_flag(self, flags):
if isinstance(flags, basestring):
flags = [flags]
- missing_iuse = []
for flag in flags:
if not flag in self.all:
return False
@@ -76,7 +76,7 @@ class Test_match_from_list(TestCase):
("*/tar", ["sys-apps/portage-2.1.2"], [] ),
("*/*", ["dev-libs/A-1", "dev-libs/B-1"], ["dev-libs/A-1", "dev-libs/B-1"] ),
("dev-libs/*", ["dev-libs/A-1", "sci-libs/B-1"], ["dev-libs/A-1"] ),
-
+
("dev-libs/A[foo]", [Package("=dev-libs/A-1[foo]"), Package("=dev-libs/A-2[-foo]")], ["dev-libs/A-1"] ),
("dev-libs/A[-foo]", [Package("=dev-libs/A-1[foo]"), Package("=dev-libs/A-2[-foo]")], ["dev-libs/A-2"] ),
("dev-libs/A[-foo]", [Package("=dev-libs/A-1[foo]"), Package("=dev-libs/A-2")], [] ),
@@ -86,13 +86,23 @@ class Test_match_from_list(TestCase):
("dev-libs/A[foo,bar(+)]", [Package("=dev-libs/A-1[-foo]"), Package("=dev-libs/A-2[foo]")], ["dev-libs/A-2"] ),
("dev-libs/A[foo,bar(-)]", [Package("=dev-libs/A-1[-foo]"), Package("=dev-libs/A-2[foo]")], [] ),
("dev-libs/A[foo,-bar(-)]", [Package("=dev-libs/A-1[-foo,bar]"), Package("=dev-libs/A-2[foo]")], ["dev-libs/A-2"] ),
+
+ ("dev-libs/A::repo1", [Package("=dev-libs/A-1::repo1"), Package("=dev-libs/A-1::repo2")], ["dev-libs/A-1::repo1"] ),
+ ("dev-libs/A::repo2", [Package("=dev-libs/A-1::repo1"), Package("=dev-libs/A-1::repo2")], ["dev-libs/A-1::repo2"] ),
+ ("dev-libs/A::repo2[foo]", [Package("=dev-libs/A-1::repo1[foo]"), Package("=dev-libs/A-1::repo2[-foo]")], [] ),
+ ("dev-libs/A::repo2[foo]", [Package("=dev-libs/A-1::repo1[-foo]"), Package("=dev-libs/A-1::repo2[foo]")], ["dev-libs/A-1::repo2"] ),
+ ("dev-libs/A:1::repo2[foo]", [Package("=dev-libs/A-1:1::repo1"), Package("=dev-libs/A-1:2::repo2")], [] ),
+ ("dev-libs/A:1::repo2[foo]", [Package("=dev-libs/A-1:2::repo1"), Package("=dev-libs/A-1:1::repo2[foo]")], ["dev-libs/A-1::repo2"] ),
)
for atom, cpv_list, expected_result in tests:
result = []
for pkg in match_from_list( atom, cpv_list ):
if isinstance(pkg, Package):
- result.append(pkg.cpv)
+ if pkg.repo:
+ result.append(pkg.cpv + _repo_separator + pkg.repo)
+ else:
+ result.append(pkg.cpv)
else:
result.append(pkg)
self.assertEqual( result, expected_result )