summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Luther <SebastianLuther@gmx.de>2010-10-12 16:34:37 +0200
committerZac Medico <zmedico@gentoo.org>2010-10-13 08:38:48 -0700
commitcc028a311bcac5297c536e5cf96b0df5045c675f (patch)
tree20c0eb2fc834594beee9413e370996c72cefebff
parentdce4822157c39befe25d8264512c739eecaf26e2 (diff)
downloadportage-cc028a311bcac5297c536e5cf96b0df5045c675f.tar.gz
portage-cc028a311bcac5297c536e5cf96b0df5045c675f.tar.bz2
portage-cc028a311bcac5297c536e5cf96b0df5045c675f.zip
Allow repository specs for atoms with wildcards
-rw-r--r--pym/portage/dep/__init__.py4
-rw-r--r--pym/portage/tests/dep/testAtom.py10
2 files changed, 12 insertions, 2 deletions
diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py
index 268ebb643..b829e8045 100644
--- a/pym/portage/dep/__init__.py
+++ b/pym/portage/dep/__init__.py
@@ -1010,7 +1010,7 @@ class Atom(_atom_base):
if cpv.find("**") != -1:
raise InvalidAtom(self)
slot = gdict['slot']
- repo = None
+ repo = gdict['repo']
use_str = None
extended_syntax = True
else:
@@ -1529,7 +1529,7 @@ _atom_re = re.compile('^(?P<without_use>(?:' +
_extended_cat = r'[\w+*][\w+.*-]*'
_extended_pkg = r'[\w+*][\w+*-]*?'
-_atom_wildcard_re = re.compile('(?P<simple>(' + _extended_cat + ')/(' + _extended_pkg + '))(:(?P<slot>' + _slot + '))?$')
+_atom_wildcard_re = re.compile('(?P<simple>(' + _extended_cat + ')/(' + _extended_pkg + '))(:(?P<slot>' + _slot + '))?(' + _repo_separator + '(?P<repo>' + _repo_name + '))?$')
_valid_use_re = re.compile(r'^[A-Za-z0-9][A-Za-z0-9+_@-]*$')
diff --git a/pym/portage/tests/dep/testAtom.py b/pym/portage/tests/dep/testAtom.py
index a1dea8c1f..092cacf84 100644
--- a/pym/portage/tests/dep/testAtom.py
+++ b/pym/portage/tests/dep/testAtom.py
@@ -47,6 +47,15 @@ class TestAtom(TestCase):
('=*', '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 = (
@@ -103,6 +112,7 @@ class TestAtom(TestCase):
( "=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: