diff options
author | Sebastian Luther <SebastianLuther@gmx.de> | 2010-09-14 20:26:17 +0200 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-09-14 18:05:54 -0700 |
commit | 0f2e8db77193a4eba48bfce0848bc857fc9f5c2d (patch) | |
tree | c91cb0b02912f503bcc7f28832f2416ac773662d /pym/portage/tests/dep | |
parent | c5e2cab7a6904295fa74ca3be42fc37e898c9c85 (diff) | |
download | portage-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.py | 151 | ||||
-rw-r--r-- | pym/portage/tests/dep/test_match_from_list.py | 20 |
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 ) |