diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-05-25 03:13:06 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-05-25 03:13:06 +0000 |
commit | cdcde7c2274da95c0b6fddf8750588c89cf2f842 (patch) | |
tree | 7524df82bdd809b3ac94c62d8bceab39434164b7 /pym | |
parent | 2cfeeb2014b3648cc63f1f959afc70807ba15450 (diff) | |
download | portage-cdcde7c2274da95c0b6fddf8750588c89cf2f842.tar.gz portage-cdcde7c2274da95c0b6fddf8750588c89cf2f842.tar.bz2 portage-cdcde7c2274da95c0b6fddf8750588c89cf2f842.zip |
Fix isvalidatom() so tests pass, and add a USE deps case to the tests.
(trunk r10399)
svn path=/main/branches/2.1.2/; revision=10401
Diffstat (limited to 'pym')
-rw-r--r-- | pym/portage_dep.py | 12 | ||||
-rw-r--r-- | pym/portage_versions.py | 12 |
2 files changed, 9 insertions, 15 deletions
diff --git a/pym/portage_dep.py b/pym/portage_dep.py index 4fe95d9b3..bad51b646 100644 --- a/pym/portage_dep.py +++ b/pym/portage_dep.py @@ -369,6 +369,7 @@ def remove_slot(mydep): mydep = mydep[:colon] return mydep +_valid_category = re.compile("^\w[\w-]*") _invalid_atom_chars_regexp = re.compile("[()|?@\[\]]") def isvalidatom(atom, allow_blockers=False): @@ -393,10 +394,13 @@ def isvalidatom(atom, allow_blockers=False): return 0 if allow_blockers and atom.startswith("!"): atom = atom[1:] - try: - mycpv_cps = catpkgsplit(dep_getcpv(atom)) - except InvalidData: - return 0 + cpv = dep_getcpv(atom) + if cpv: + if _valid_category.match(catsplit(cpv)[0]) is None: + return 0 + mycpv_cps = catpkgsplit(cpv) + else: + mycpv_cps = None operator = get_operator(atom) if operator: if operator[0] in "<>" and remove_slot(atom).endswith("*"): diff --git a/pym/portage_versions.py b/pym/portage_versions.py index ff31fbd4e..e28f174bb 100644 --- a/pym/portage_versions.py +++ b/pym/portage_versions.py @@ -255,8 +255,6 @@ def pkgsplit(mypkg,silent=1): pkgcache[mypkg]=None return None -_valid_category = re.compile("^\w[\w-]*") - catcache={} def catpkgsplit(mydata,silent=1): """ @@ -271,13 +269,8 @@ def catpkgsplit(mydata,silent=1): 1. If each exists, it returns [cat, pkgname, version, rev] 2. If cat is not specificed in mydata, cat will be "null" 3. if rev does not exist it will be '-r0' - 4. If cat is invalid (specified but has incorrect syntax) - an InvalidData Exception will be thrown """ - - # Categories may contain a-zA-z0-9+_- but cannot start with - - global _valid_category - import portage_dep + try: if not catcache[mydata]: return None @@ -290,9 +283,6 @@ def catpkgsplit(mydata,silent=1): retval=["null"] p_split=pkgsplit(mydata,silent=silent) elif len(mysplit)==2: - if portage_dep._dep_check_strict and \ - not _valid_category.match(mysplit[0]): - raise InvalidData("Invalid category in %s" %mydata ) retval=[mysplit[0]] p_split=pkgsplit(mysplit[1],silent=silent) if not p_split: |