summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlec Warner <antarus@gentoo.org>2007-01-11 21:38:32 +0000
committerAlec Warner <antarus@gentoo.org>2007-01-11 21:38:32 +0000
commit28ae3c3314f3df05116df51c76df4150f913aceb (patch)
treedce625a09574b2ab3c858931f3a2a4dfbbd5ce7c
parentda67328341fef2cc4d9e85be0694aad113b30c0a (diff)
downloadportage-28ae3c3314f3df05116df51c76df4150f913aceb.tar.gz
portage-28ae3c3314f3df05116df51c76df4150f913aceb.tar.bz2
portage-28ae3c3314f3df05116df51c76df4150f913aceb.zip
Handle the exception in isvalidatom, change it to use a portage exceptoin, thanks to Zac for pointing this out
svn path=/main/trunk/; revision=5571
-rw-r--r--pym/portage_dep.py6
-rw-r--r--pym/portage_versions.py5
-rw-r--r--tests/portage_dep/test_isvalidatom.py8
3 files changed, 10 insertions, 9 deletions
diff --git a/pym/portage_dep.py b/pym/portage_dep.py
index 34eb8f33d..56c923886 100644
--- a/pym/portage_dep.py
+++ b/pym/portage_dep.py
@@ -20,6 +20,7 @@
import re, string, sys, types
import portage_exception
+from portage_exception import InvalidData
from portage_versions import catpkgsplit, catsplit, pkgcmp, pkgsplit, ververify
def cpvequal(cpv1, cpv2):
@@ -359,7 +360,10 @@ def isvalidatom(atom, allow_blockers=False):
return 0
if allow_blockers and atom.startswith("!"):
atom = atom[1:]
- mycpv_cps = catpkgsplit(dep_getcpv(atom))
+ try:
+ mycpv_cps = catpkgsplit(dep_getcpv(atom))
+ except InvalidData:
+ return 0
operator = get_operator(atom)
if operator:
if operator[0] in "<>" and atom[-1] == "*":
diff --git a/pym/portage_versions.py b/pym/portage_versions.py
index 706c197fd..b4bbb5700 100644
--- a/pym/portage_versions.py
+++ b/pym/portage_versions.py
@@ -10,6 +10,7 @@ suffix_regexp = re.compile("^(alpha|beta|rc|pre|p)(\\d*)$")
suffix_value = {"pre": -2, "p": 0, "alpha": -4, "beta": -3, "rc": -1}
endversion_keys = ["pre", "p", "alpha", "beta", "rc"]
+from portage_exceptions import InvalidData
def ververify(myver, silent=1):
if ver_regexp.match(myver):
@@ -262,7 +263,7 @@ def catpkgsplit(mydata,silent=1):
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)
- a ValueError will be thrown
+ an InvalidData Exception will be thrown
"""
# Categories may contain a-zA-z0-9+_- but cannot start with -
@@ -280,7 +281,7 @@ def catpkgsplit(mydata,silent=1):
p_split=pkgsplit(mydata,silent=silent)
elif len(mysplit)==2:
if not valid_category.match(mysplit[0]):
- raise ValueError("Invalid category in %s" %mydata )
+ raise InvalidData("Invalid category in %s" %mydata )
retval=[mysplit[0]]
p_split=pkgsplit(mysplit[1],silent=silent)
if not p_split:
diff --git a/tests/portage_dep/test_isvalidatom.py b/tests/portage_dep/test_isvalidatom.py
index 64b029391..7835fbd0c 100644
--- a/tests/portage_dep/test_isvalidatom.py
+++ b/tests/portage_dep/test_isvalidatom.py
@@ -32,9 +32,5 @@ class IsValidAtom(TestCase):
atom_type = "valid"
else:
atom_type = "invalid"
- try:
- self.assertEqual( bool(isvalidatom( test[0] )), test[1],
- msg="isvalidatom(%s) != %s" % ( test[0], test[1] ) )
- except ValueError:
- if not test[1]:
- pass
+ self.assertEqual( bool(isvalidatom( test[0] )), test[1],
+ msg="isvalidatom(%s) != %s" % ( test[0], test[1] ) )