summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/portage/dbapi/porttree.py15
-rw-r--r--pym/portage/tests/dep/test_src_uri.py31
2 files changed, 37 insertions, 9 deletions
diff --git a/pym/portage/dbapi/porttree.py b/pym/portage/dbapi/porttree.py
index feade6fc8..95455182c 100644
--- a/pym/portage/dbapi/porttree.py
+++ b/pym/portage/dbapi/porttree.py
@@ -63,6 +63,11 @@ def _src_uri_validate(cpv, eapi, src_uri):
"supported with EAPI='%s'") % (cpv, eapi))
operator = x
continue
+ if operator is not None:
+ if "/" in x:
+ raise portage.exception.InvalidDependString(
+ ("getFetchMap(): '%s' SRC_URI '/' character in " + \
+ "file name: '%s'") % (cpv, x))
uri = None
operator = None
@@ -548,11 +553,6 @@ class portdbapi(dbapi):
if myuris:
continue
if token == "->":
- if eapi in ("0", "1"):
- raise portage.exception.InvalidDependString(
- ("getFetchMap(): '%s' SRC_URI arrows are not " + \
- "supported with EAPI='%s'") % (mypkg, eapi))
-
operator = token
continue
if operator is None:
@@ -563,10 +563,7 @@ class portdbapi(dbapi):
"name: '%s'") % (mypkg, uri))
else:
distfile = token
- if "/" in distfile:
- raise portage.exception.InvalidDependString(
- ("getFetchMap(): '%s' SRC_URI '/' character in " + \
- "file name: '%s'") % (mypkg, distfile))
+
uri_set = uri_map.get(distfile)
if uri_set is None:
uri_set = set()
diff --git a/pym/portage/tests/dep/test_src_uri.py b/pym/portage/tests/dep/test_src_uri.py
new file mode 100644
index 000000000..3b9f08052
--- /dev/null
+++ b/pym/portage/tests/dep/test_src_uri.py
@@ -0,0 +1,31 @@
+# Copyright 2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+from portage.tests import TestCase
+from portage.dep import paren_reduce
+from portage.dbapi.porttree import _src_uri_validate
+from portage.exception import InvalidDependString
+
+class SrcUri(TestCase):
+
+ def testSrcUri(self):
+
+ tests = [
+ ( "0", "http://foo/bar -> blah.tbz2" , False ),
+ ( "1", "http://foo/bar -> blah.tbz2" , False ),
+ ( "2", "http://foo/bar -> blah.tbz2" , True ),
+ ( "2", "foo? ( http://foo/bar -> blah.tbz2 )" , True ),
+ ( "2", "-> http://foo/bar blah.tbz2 )" , False ),
+ ( "2", "http://foo/bar ->" , False ),
+ ( "2", "foo? ( http://foo/bar -> ) blah.tbz2" , False ),
+ ( "2", "http://foo/bar -> foo/blah.tbz2" , False ),
+ ]
+
+ for eapi, src_uri, valid in tests:
+ try:
+ _src_uri_validate("cat/pkg-1", eapi, paren_reduce(src_uri))
+ except InvalidDependString:
+ self.assertEqual(valid, False)
+ else:
+ self.assertEqual(valid, True)