summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-02-19 19:19:18 +0000
committerZac Medico <zmedico@gentoo.org>2009-02-19 19:19:18 +0000
commit42a7366b541ab389fd24d986292f3895a774ad0a (patch)
treeee524d1db0c2f9dbfa8be89753dff32c42a6c47e
parent35ce9db328c0727f4c246a0b9caa7fb02652d05b (diff)
downloadportage-42a7366b541ab389fd24d986292f3895a774ad0a.tar.gz
portage-42a7366b541ab389fd24d986292f3895a774ad0a.tar.bz2
portage-42a7366b541ab389fd24d986292f3895a774ad0a.zip
Make isvalidatom() identify empty slot as invalid (missing slot is valid) and
add a corresponding test case. svn path=/main/trunk/; revision=12654
-rw-r--r--pym/portage/dep.py4
-rw-r--r--pym/portage/tests/dep/test_isvalidatom.py1
2 files changed, 5 insertions, 0 deletions
diff --git a/pym/portage/dep.py b/pym/portage/dep.py
index 04817068c..22fa8bf56 100644
--- a/pym/portage/dep.py
+++ b/pym/portage/dep.py
@@ -773,6 +773,10 @@ def isvalidatom(atom, allow_blockers=False):
else:
atom = atom[1:]
+ if dep_getslot(atom) == "":
+ # empty slot is invalid (None is valid)
+ return 0
+
try:
use = dep_getusedeps(atom)
if use:
diff --git a/pym/portage/tests/dep/test_isvalidatom.py b/pym/portage/tests/dep/test_isvalidatom.py
index 1364a92a2..5d6b4e73a 100644
--- a/pym/portage/tests/dep/test_isvalidatom.py
+++ b/pym/portage/tests/dep/test_isvalidatom.py
@@ -25,6 +25,7 @@ class IsValidAtom(TestCase):
( "sys-apps/portage:foo", True ),
( "sys-apps/portage-2.1:foo", False ),
( "sys-apps/portage-2.1:", False ),
+ ( "sys-apps/portage-2.1:[foo]", False ),
( "=sys-apps/portage-2.2*:foo[bar?,!baz?,!doc=,build=]", True ),
( "=sys-apps/portage-2.2*:foo[doc?]", True ),
( "=sys-apps/portage-2.2*:foo[!doc?]", True ),