From a71e97b24a30f434fd2ea2ca60c761fa54214799 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 3 Feb 2011 17:38:32 -0800 Subject: REQUIRED_USE: fix parens display and test --- pym/portage/dep/__init__.py | 7 ++++-- pym/portage/tests/dep/testCheckRequiredUse.py | 32 ++++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 3 deletions(-) (limited to 'pym') diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py index 7e9a18ad3..0300b7489 100644 --- a/pym/portage/dep/__init__.py +++ b/pym/portage/dep/__init__.py @@ -2088,11 +2088,14 @@ class _RequiredUseBranch(object): def tounicode(self): + include_parens = self._parent is not None and \ + (self._operator is not None or \ + self._parent._operator is None) tokens = [] if self._operator is not None: tokens.append(self._operator) - if self._parent is not None: + if include_parens: tokens.append("(") complex_nesting = False @@ -2111,7 +2114,7 @@ class _RequiredUseBranch(object): if not child._satisfied: tokens.append(child.tounicode()) - if self._parent is not None: + if include_parens: tokens.append(")") return " ".join(tokens) diff --git a/pym/portage/tests/dep/testCheckRequiredUse.py b/pym/portage/tests/dep/testCheckRequiredUse.py index 0f7a299e9..0fb97023a 100644 --- a/pym/portage/tests/dep/testCheckRequiredUse.py +++ b/pym/portage/tests/dep/testCheckRequiredUse.py @@ -134,7 +134,37 @@ class TestCheckRequiredUse(TestCase): ( "^^ ( || ( ( a b ) ) ( c ) )", ("a", "b", "c"), - "^^ ( || ( ( a b ) ) ( c ) )" + "^^ ( || ( a b ) c )" + ), + ( + "a? ( ( c e ) ( b d ) )", + ("a", "c", "e"), + "a? ( b d )" + ), + ( + "a? ( ( c e ) ( b d ) )", + ("a", "b", "c", "e"), + "a? ( d )" + ), + ( + "^^ ( || ( a b ) ^^ ( b c ) )", + ("a", "b"), + "^^ ( || ( a b ) ^^ ( b c ) )" + ), + ( + "^^ ( || ( a b ) ^^ ( b c ) )", + ["a", "c"], + "^^ ( || ( a b ) ^^ ( b c ) )" + ), + ( + "^^ ( || ( a b ) ^^ ( b c ) )", + ["b", "c"], + "" + ), + ( + "^^ ( || ( a b ) ^^ ( b c ) )", + ["a", "b", "c"], + "" ) ) for required_use, use, expected in test_cases: -- cgit v1.2.3-1-g7c22