Revert "Tests: Remove paren_reduce tests"
authorSebastian Luther <SebastianLuther@gmx.de>
Wed, 18 Aug 2010 13:19:24 +0000 (15:19 +0200)
committerZac Medico <zmedico@gentoo.org>
Wed, 18 Aug 2010 13:42:32 +0000 (06:42 -0700)
This reverts commit 67f3bef9efeff7061765edc9515a97143c2f2e55.

pym/portage/tests/dep/test_paren_reduce.py [new file with mode: 0644]

diff --git a/pym/portage/tests/dep/test_paren_reduce.py b/pym/portage/tests/dep/test_paren_reduce.py
new file mode 100644 (file)
index 0000000..bd5f425
--- /dev/null
@@ -0,0 +1,60 @@
+# Copyright 2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+from portage.tests import TestCase
+from portage.dep import paren_reduce
+from portage.exception import InvalidDependString
+
+class TestParenReduce(TestCase):
+
+       def testParenReduce(self):
+
+               test_cases = (
+                       ( "A", ["A"]),
+                       ( "( A )", ["A"]),
+                       ( "|| ( A B )", [ "||", ["A", "B"] ]),
+                       ( "|| ( A || ( B C ) )", [ "||", ["A", "||", ["B", "C"]]]),
+                       ( "|| ( A || ( B C D ) )", [ "||", ["A", "||", ["B", "C", "D"]] ]),
+                       ( "|| ( A || ( B || ( C D ) E ) )", [ "||", ["A", "||", ["B", "||", ["C", "D"], "E"]] ]),
+                       ( "a? ( A )", ["a?", ["A"]]),
+                       
+                       ( "( || ( ( ( A ) B ) ) )", [ "||", ["A", "B"] ]),
+                       ( "( || ( || ( ( A ) B ) ) )", [ "||", ["A", "B"] ]),
+                       ( "( || ( || ( ( A ) B ) ) )", [ "||", ["A", "B"] ]),
+                       ( "|| ( A )", ["A"]),
+                       ( "( || ( || ( || ( A ) foo? ( B ) ) ) )", [ "||", ["A", "foo?", ["B"] ]]),
+                       ( "( || ( || ( bar? ( A ) || ( foo? ( B ) ) ) ) )", [ "||", ["bar?", ["A"], "foo?", ["B"] ]]),
+                       ( "A || ( ) foo? ( ) B", ["A", "B"]),
+
+                       ( "|| ( A ) || ( B )", ["A", "B"]),
+                       ( "foo? ( A ) foo? ( B )", ["foo?", ["A"], "foo?", ["B"]]),
+               )
+               
+               test_cases_xfail = (
+                       "( A",
+                       "A )",
+
+                       "||( A B )",
+                       "|| (A B )",
+                       "|| ( A B)",
+                       "|| ( A B",
+                       "|| A B )",
+
+                       "|| A B",
+                       "|| ( A B ) )",
+                       "|| || B C",
+                       
+                       "|| ( A B || )",
+                       
+                       "a? A",
+                       
+                       ( "( || ( || || ( A ) foo? ( B ) ) )"),
+                       ( "( || ( || bar? ( A ) foo? ( B ) ) )"),
+               )
+
+               for dep_str, expected_result in test_cases:
+                       self.assertEqual(paren_reduce(dep_str), expected_result)
+
+               for dep_str in test_cases_xfail:
+                       self.assertRaisesMsg(dep_str,
+                               InvalidDependString, paren_reduce, dep_str)