use_reduce: disallow empty parens
authorArfrever Frehtes Taifersar Arahesis <Arfrever@Gentoo.Org>
Thu, 9 Jun 2011 14:23:28 +0000 (07:23 -0700)
committerZac Medico <zmedico@gentoo.org>
Thu, 9 Jun 2011 14:23:28 +0000 (07:23 -0700)
This will fix bug #370565.

pym/portage/dep/__init__.py
pym/portage/tests/dep/test_use_reduce.py

index 862154318ca643d4def25c08f14f05a736cf5b38..ba373241f33d9ebeecd0acb6a82c718e92caab47 100644 (file)
@@ -369,6 +369,9 @@ def use_reduce(depstr, uselist=[], masklist=[], matchall=False, excludeall=[], i
                        if need_simple_token:
                                raise InvalidDependString(
                                        _("expected: file name, got: '%s', token %s") % (token, pos+1))
+                       if len(mysplit) >= pos+2 and mysplit[pos+1] == ")":
+                               raise InvalidDependString(
+                                       _("expected: dependency string, got: ')', token %s") % (pos+1,))
                        need_bracket = False
                        stack.append([])
                        level += 1
index 7c7286ad801ca0787b456ab64b86a64d2c3aa4db..b89752fb41cf4b80b8c06d41f312983890eb52f9 100644 (file)
@@ -217,7 +217,7 @@ class UseReduce(TestCase):
                                uselist = ["foo", "bar"],
                                expected_result = [ "||", [ "A", "B" ] ]),
                        UseReduceTestCase(
-                               "A || ( ) foo? ( ) B",
+                               "A || ( bar? ( C ) ) foo? ( bar? ( C ) ) B",
                                expected_result = ["A", "B"]),
                        UseReduceTestCase(
                                "|| ( A ) || ( B )",
@@ -350,7 +350,7 @@ class UseReduce(TestCase):
                                opconvert = True,
                                expected_result = [['||', 'A', 'B']]),
                        UseReduceTestCase(
-                               "A || ( ) foo? ( ) B",
+                               "A || ( bar? ( C ) ) foo? ( bar? ( C ) ) B",
                                opconvert = True,
                                expected_result = ["A", "B"]),
                        UseReduceTestCase(
@@ -509,7 +509,7 @@ class UseReduce(TestCase):
                                flat = True,
                                expected_result = [ "||", "||", "A", "||", "B" ]),
                        UseReduceTestCase(
-                               "A || ( ) foo? ( ) B",
+                               "A || ( bar? ( C ) ) foo? ( bar? ( C ) ) B",
                                flat = True,
                                expected_result = ["A", "||", "B"]),
                        UseReduceTestCase(