diff options
-rw-r--r-- | pym/portage/dep.py | 5 | ||||
-rw-r--r-- | pym/portage/tests/dep/test_isvalidatom.py | 1 |
2 files changed, 5 insertions, 1 deletions
diff --git a/pym/portage/dep.py b/pym/portage/dep.py index 9c9c14380..831a8a324 100644 --- a/pym/portage/dep.py +++ b/pym/portage/dep.py @@ -782,6 +782,7 @@ def isvalidatom(atom, allow_blockers=False): cpv = dep_getcpv(atom) cpv_catsplit = catsplit(cpv) + without_slot = remove_slot(atom) mycpv_cps = None if cpv: if len(cpv_catsplit) == 2: @@ -795,10 +796,12 @@ def isvalidatom(atom, allow_blockers=False): mycpv_cps[0] = "null" if not mycpv_cps: mycpv_cps = catpkgsplit(cpv) + if mycpv_cps is None and cpv != without_slot: + return 0 operator = get_operator(atom) if operator: - if operator[0] in "<>" and remove_slot(atom).endswith("*"): + if operator[0] in "<>" and without_slot[-1:] == "*": return 0 if mycpv_cps: if len(cpv_catsplit) == 2: diff --git a/pym/portage/tests/dep/test_isvalidatom.py b/pym/portage/tests/dep/test_isvalidatom.py index cd501e90d..1364a92a2 100644 --- a/pym/portage/tests/dep/test_isvalidatom.py +++ b/pym/portage/tests/dep/test_isvalidatom.py @@ -57,6 +57,7 @@ class IsValidAtom(TestCase): ( "null/portage", True ), ( "=null/portage", False ), ( "=null/portage*", False ), + ( "null/portage*:0", False ), ( ">=null/portage-2.1", True ), ( "~null/portage-2.1", True ), ( "=null/portage-2.1*", True ),] |