public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] portage r10399 - in main/trunk/pym/portage: . tests/dep
@ 2008-05-25  2:56 Zac Medico (zmedico)
  0 siblings, 0 replies; only message in thread
From: Zac Medico (zmedico) @ 2008-05-25  2:56 UTC (permalink / raw
  To: gentoo-commits

Author: zmedico
Date: 2008-05-25 02:56:41 +0000 (Sun, 25 May 2008)
New Revision: 10399

Modified:
   main/trunk/pym/portage/dep.py
   main/trunk/pym/portage/tests/dep/test_isvalidatom.py
Log:
Fix isvalidatom() so tests pass, and add a USE deps case to the tests.


Modified: main/trunk/pym/portage/dep.py
===================================================================
--- main/trunk/pym/portage/dep.py	2008-05-25 02:20:45 UTC (rev 10398)
+++ main/trunk/pym/portage/dep.py	2008-05-25 02:56:41 UTC (rev 10399)
@@ -557,6 +557,7 @@
 		open_bracket = depend.find( '[', open_bracket+1 )
 	return tuple(use_list)
 
+_valid_category = re.compile("^\w[\w-]*")
 _invalid_atom_chars_regexp = re.compile("[()|@]")
 
 def isvalidatom(atom, allow_blockers=False):
@@ -585,10 +586,13 @@
 		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("*"):

Modified: main/trunk/pym/portage/tests/dep/test_isvalidatom.py
===================================================================
--- main/trunk/pym/portage/tests/dep/test_isvalidatom.py	2008-05-25 02:20:45 UTC (rev 10398)
+++ main/trunk/pym/portage/tests/dep/test_isvalidatom.py	2008-05-25 02:56:41 UTC (rev 10399)
@@ -13,8 +13,7 @@
 	"""
 
 	def testIsValidAtom(self):
-	
-		self.todo = True	
+
 		tests = [ ( "sys-apps/portage", True ),
 			  ( "=sys-apps/portage-2.1", True ),
 		 	  ( "=sys-apps/portage-2.1*", True ),
@@ -26,9 +25,10 @@
 			  ( "sys-apps/portage:foo", True ),
 			  ( "sys-apps/portage-2.1:foo", False ),
 			  ( "sys-apps/portage-2.1:", False ),
+			  ( "=sys-apps/portage-2.2*:foo[bar][-baz][doc?][-build?]", True ),
 			  ( ">~cate-gory/foo-1.0", False ),
-			  ( ">~category/foo-1.0", True ),
-			  ( "<~category/foo-1.0", True ),
+			  ( ">~category/foo-1.0", False ),
+			  ( "<~category/foo-1.0", False ),
 			  ( "###cat/foo-1.0", False ),
 			  ( "~sys-apps/portage", False ),
 			  ( "portage", False ) ]

-- 
gentoo-commits@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-05-25  2:56 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-25  2:56 [gentoo-commits] portage r10399 - in main/trunk/pym/portage: . tests/dep Zac Medico (zmedico)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox