| # Copyright 2009-2010 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| from portage.tests import TestCase |
| from portage.exception import InvalidDependString |
| from portage.dep import Atom, use_reduce |
| |
| class UseReduceTestCase(object): |
| def __init__(self, deparray, uselist=[], masklist=[], |
| matchall=0, excludeall=[], is_src_uri=False, |
| eapi='0', opconvert=False, flat=False, expected_result=None, |
| is_valid_flag=None, token_class=None): |
| self.deparray = deparray |
| self.uselist = uselist |
| self.masklist = masklist |
| self.matchall = matchall |
| self.excludeall = excludeall |
| self.is_src_uri = is_src_uri |
| self.eapi = eapi |
| self.opconvert = opconvert |
| self.flat = flat |
| self.is_valid_flag = is_valid_flag |
| self.token_class = token_class |
| self.expected_result = expected_result |
| |
| def run(self): |
| try: |
| return use_reduce(self.deparray, self.uselist, self.masklist, |
| self.matchall, self.excludeall, self.is_src_uri, self.eapi, |
| self.opconvert, self.flat, self.is_valid_flag, self.token_class) |
| except InvalidDependString as e: |
| raise InvalidDependString("%s: %s" % (e, self.deparray)) |
| |
| class UseReduce(TestCase): |
| |
| def always_true(self, ununsed_parameter): |
| return True |
| |
| def always_false(self, ununsed_parameter): |
| return False |
| |
| def testUseReduce(self): |
| |
| EAPI_WITH_SRC_URI_ARROWS = "2" |
| EAPI_WITHOUT_SRC_URI_ARROWS = "0" |
| |
| test_cases = ( |
| UseReduceTestCase( |
| "a? ( A ) b? ( B ) !c? ( C ) !d? ( D )", |
| uselist=["a", "b", "c", "d"], |
| expected_result=["A", "B"] |
| ), |
| UseReduceTestCase( |
| "a? ( A ) b? ( B ) !c? ( C ) !d? ( D )", |
| uselist=["a", "b", "c"], |
| expected_result=["A", "B", "D"] |
| ), |
| UseReduceTestCase( |
| "a? ( A ) b? ( B ) !c? ( C ) !d? ( D )", |
| uselist=["b", "c"], |
| expected_result=["B", "D"] |
| ), |
| |
| UseReduceTestCase( |
| "a? ( A ) b? ( B ) !c? ( C ) !d? ( D )", |
| matchall=True, |
| expected_result=["A", "B", "C", "D"] |
| ), |
| UseReduceTestCase( |
| "a? ( A ) b? ( B ) !c? ( C ) !d? ( D )", |
| masklist=["a", "c"], |
| expected_result=["C", "D"] |
| ), |
| UseReduceTestCase( |
| "a? ( A ) b? ( B ) !c? ( C ) !d? ( D )", |
| matchall=True, |
| masklist=["a", "c"], |
| expected_result=["B", "C", "D"] |
| ), |
| UseReduceTestCase( |
| "a? ( A ) b? ( B ) !c? ( C ) !d? ( D )", |
| uselist=["a", "b"], |
| masklist=["a", "c"], |
| expected_result=["B", "C", "D"] |
| ), |
| UseReduceTestCase( |
| "a? ( A ) b? ( B ) !c? ( C ) !d? ( D )", |
| excludeall=["a", "c"], |
| expected_result=["D"] |
| ), |
| UseReduceTestCase( |
| "a? ( A ) b? ( B ) !c? ( C ) !d? ( D )", |
| uselist=["b"], |
| excludeall=["a", "c"], |
| expected_result=["B", "D"] |
| ), |
| UseReduceTestCase( |
| "a? ( A ) b? ( B ) !c? ( C ) !d? ( D )", |
| matchall=True, |
| excludeall=["a", "c"], |
| expected_result=["A", "B", "D"] |
| ), |
| UseReduceTestCase( |
| "a? ( A ) b? ( B ) !c? ( C ) !d? ( D )", |
| matchall=True, |
| excludeall=["a", "c"], |
| masklist=["b"], |
| expected_result=["A", "D"] |
| ), |
| |
| UseReduceTestCase( |
| "a? ( b? ( AB ) )", |
| uselist=["a", "b"], |
| expected_result=["AB"] |
| ), |
| UseReduceTestCase( |
| "a? ( b? ( AB ) C )", |
| uselist=["a"], |
| expected_result=["C"] |
| ), |
| UseReduceTestCase( |
| "a? ( b? ( || ( AB CD ) ) )", |
| uselist=["a", "b"], |
| expected_result=["||", ["AB", "CD"]] |
| ), |
| UseReduceTestCase( |
| "|| ( || ( a? ( A ) b? ( B ) ) )", |
| uselist=["a", "b"], |
| expected_result=["||", ["A", "B"]] |
| ), |
| UseReduceTestCase( |
| "|| ( || ( a? ( A ) b? ( B ) ) )", |
| uselist=["a"], |
| expected_result=["A"] |
| ), |
| UseReduceTestCase( |
| "|| ( || ( a? ( A ) b? ( B ) ) )", |
| uselist=[], |
| expected_result=[] |
| ), |
| UseReduceTestCase( |
| "|| ( || ( a? ( || ( A c? ( C ) ) ) b? ( B ) ) )", |
| uselist=[], |
| expected_result=[] |
| ), |
| UseReduceTestCase( |
| "|| ( || ( a? ( || ( A c? ( C ) ) ) b? ( B ) ) )", |
| uselist=["a"], |
| expected_result=["A"] |
| ), |
| UseReduceTestCase( |
| "|| ( || ( a? ( || ( A c? ( C ) ) ) b? ( B ) ) )", |
| uselist=["b"], |
| expected_result=["B"] |
| ), |
| UseReduceTestCase( |
| "|| ( || ( a? ( || ( A c? ( C ) ) ) b? ( B ) ) )", |
| uselist=["c"], |
| expected_result=[] |
| ), |
| UseReduceTestCase( |
| "|| ( || ( a? ( || ( A c? ( C ) ) ) b? ( B ) ) )", |
| uselist=["a", "c"], |
| expected_result=["||", ["A", "C"]] |
| ), |
| |
| # paren_reduce tests |
| UseReduceTestCase( |
| "A", |
| expected_result=["A"]), |
| UseReduceTestCase( |
| "( A )", |
| expected_result=["A"]), |
| UseReduceTestCase( |
| "|| ( A B )", |
| expected_result=["||", ["A", "B"]]), |
| UseReduceTestCase( |
| "|| ( ( A B ) C )", |
| expected_result=["||", [["A", "B"], "C"]]), |
| UseReduceTestCase( |
| "|| ( ( A B ) ( C ) )", |
| expected_result=["||", [["A", "B"], "C"]]), |
| UseReduceTestCase( |
| "|| ( A || ( B C ) )", |
| expected_result=["||", ["A", "B", "C"]]), |
| UseReduceTestCase( |
| "|| ( A || ( B C D ) )", |
| expected_result=["||", ["A", "B", "C", "D"]]), |
| UseReduceTestCase( |
| "|| ( A || ( B || ( C D ) E ) )", |
| expected_result=["||", ["A", "B", "C", "D", "E"]]), |
| UseReduceTestCase( |
| "( || ( ( ( A ) B ) ) )", |
| expected_result=["A", "B"]), |
| UseReduceTestCase( |
| "( || ( || ( ( A ) B ) ) )", |
| expected_result=["||", ["A", "B"]]), |
| UseReduceTestCase( |
| "( || ( || ( ( A ) B ) ) )", |
| expected_result=["||", ["A", "B"]]), |
| UseReduceTestCase( |
| "|| ( A )", |
| expected_result=["A"]), |
| UseReduceTestCase( |
| "( || ( || ( || ( A ) foo? ( B ) ) ) )", |
| expected_result=["A"]), |
| UseReduceTestCase( |
| "( || ( || ( || ( A ) foo? ( B ) ) ) )", |
| uselist=["foo"], |
| expected_result=["||", ["A", "B"]]), |
| UseReduceTestCase( |
| "( || ( || ( bar? ( A ) || ( foo? ( B ) ) ) ) )", |
| expected_result=[]), |
| UseReduceTestCase( |
| "( || ( || ( bar? ( A ) || ( foo? ( B ) ) ) ) )", |
| uselist=["foo", "bar"], |
| expected_result=["||", ["A", "B"]]), |
| UseReduceTestCase( |
| "A || ( bar? ( C ) ) foo? ( bar? ( C ) ) B", |
| expected_result=["A", "B"]), |
| UseReduceTestCase( |
| "|| ( A ) || ( B )", |
| expected_result=["A", "B"]), |
| UseReduceTestCase( |
| "foo? ( A ) foo? ( B )", |
| expected_result=[]), |
| UseReduceTestCase( |
| "foo? ( A ) foo? ( B )", |
| uselist=["foo"], |
| expected_result=["A", "B"]), |
| UseReduceTestCase( |
| "|| ( A B ) C", |
| expected_result=['||', ['A', 'B'], 'C']), |
| UseReduceTestCase( |
| "A || ( B C )", |
| expected_result=['A', '||', ['B', 'C']]), |
| |
| # SRC_URI stuff |
| UseReduceTestCase( |
| "http://foo/bar -> blah.tbz2", |
| is_src_uri=True, |
| eapi=EAPI_WITH_SRC_URI_ARROWS, |
| expected_result=["http://foo/bar", "->", "blah.tbz2"]), |
| UseReduceTestCase( |
| "foo? ( http://foo/bar -> blah.tbz2 )", |
| uselist=[], |
| is_src_uri=True, |
| eapi=EAPI_WITH_SRC_URI_ARROWS, |
| expected_result=[]), |
| UseReduceTestCase( |
| "foo? ( http://foo/bar -> blah.tbz2 )", |
| uselist=["foo"], |
| is_src_uri=True, |
| eapi=EAPI_WITH_SRC_URI_ARROWS, |
| expected_result=["http://foo/bar", "->", "blah.tbz2"]), |
| UseReduceTestCase( |
| "http://foo/bar -> bar.tbz2 foo? ( ftp://foo/a )", |
| uselist=[], |
| is_src_uri=True, |
| eapi=EAPI_WITH_SRC_URI_ARROWS, |
| expected_result=["http://foo/bar", "->", "bar.tbz2"]), |
| UseReduceTestCase( |
| "http://foo/bar -> bar.tbz2 foo? ( ftp://foo/a )", |
| uselist=["foo"], |
| is_src_uri=True, |
| eapi=EAPI_WITH_SRC_URI_ARROWS, |
| expected_result=["http://foo/bar", "->", "bar.tbz2", "ftp://foo/a"]), |
| UseReduceTestCase( |
| "http://foo.com/foo http://foo/bar -> blah.tbz2", |
| uselist=["foo"], |
| is_src_uri=True, |
| eapi=EAPI_WITH_SRC_URI_ARROWS, |
| expected_result=["http://foo.com/foo", "http://foo/bar", "->", "blah.tbz2"]), |
| |
| # opconvert tests |
| UseReduceTestCase( |
| "A", |
| opconvert=True, |
| expected_result=["A"]), |
| UseReduceTestCase( |
| "( A )", |
| opconvert=True, |
| expected_result=["A"]), |
| UseReduceTestCase( |
| "|| ( A B )", |
| opconvert=True, |
| expected_result=[['||', 'A', 'B']]), |
| UseReduceTestCase( |
| "|| ( ( A B ) C )", |
| opconvert=True, |
| expected_result=[['||', ['A', 'B'], 'C']]), |
| UseReduceTestCase( |
| "|| ( A || ( B C ) )", |
| opconvert=True, |
| expected_result=[['||', 'A', 'B', 'C']]), |
| UseReduceTestCase( |
| "|| ( A || ( B C D ) )", |
| opconvert=True, |
| expected_result=[['||', 'A', 'B', 'C', 'D']]), |
| UseReduceTestCase( |
| "|| ( A || ( B || ( C D ) E ) )", |
| expected_result=["||", ["A", "B", "C", "D", "E"]]), |
| UseReduceTestCase( |
| "( || ( ( ( A ) B ) ) )", |
| opconvert=True, |
| expected_result=['A', 'B']), |
| UseReduceTestCase( |
| "( || ( || ( ( A ) B ) ) )", |
| opconvert=True, |
| expected_result=[['||', 'A', 'B']]), |
| UseReduceTestCase( |
| "|| ( A B ) C", |
| opconvert=True, |
| expected_result=[['||', 'A', 'B'], 'C']), |
| UseReduceTestCase( |
| "A || ( B C )", |
| opconvert=True, |
| expected_result=['A', ['||', 'B', 'C']]), |
| UseReduceTestCase( |
| "A foo? ( || ( B || ( bar? ( || ( C D E ) ) !bar? ( F ) ) ) ) G", |
| uselist=["foo", "bar"], |
| opconvert=True, |
| expected_result=['A', ['||', 'B', 'C', 'D', 'E'], 'G']), |
| UseReduceTestCase( |
| "A foo? ( || ( B || ( bar? ( || ( C D E ) ) !bar? ( F ) ) ) ) G", |
| uselist=["foo", "bar"], |
| opconvert=False, |
| expected_result=['A', '||', ['B', 'C', 'D', 'E'], 'G']), |
| |
| UseReduceTestCase( |
| "|| ( A )", |
| opconvert=True, |
| expected_result=["A"]), |
| UseReduceTestCase( |
| "( || ( || ( || ( A ) foo? ( B ) ) ) )", |
| expected_result=["A"]), |
| UseReduceTestCase( |
| "( || ( || ( || ( A ) foo? ( B ) ) ) )", |
| uselist=["foo"], |
| opconvert=True, |
| expected_result=[['||', 'A', 'B']]), |
| UseReduceTestCase( |
| "( || ( || ( bar? ( A ) || ( foo? ( B ) ) ) ) )", |
| opconvert=True, |
| expected_result=[]), |
| UseReduceTestCase( |
| "( || ( || ( bar? ( A ) || ( foo? ( B ) ) ) ) )", |
| uselist=["foo", "bar"], |
| opconvert=True, |
| expected_result=[['||', 'A', 'B']]), |
| UseReduceTestCase( |
| "A || ( bar? ( C ) ) foo? ( bar? ( C ) ) B", |
| opconvert=True, |
| expected_result=["A", "B"]), |
| UseReduceTestCase( |
| "|| ( A ) || ( B )", |
| opconvert=True, |
| expected_result=["A", "B"]), |
| UseReduceTestCase( |
| "foo? ( A ) foo? ( B )", |
| opconvert=True, |
| expected_result=[]), |
| UseReduceTestCase( |
| "foo? ( A ) foo? ( B )", |
| uselist=["foo"], |
| opconvert=True, |
| expected_result=["A", "B"]), |
| UseReduceTestCase( |
| "|| ( foo? ( || ( A B ) ) )", |
| uselist=["foo"], |
| opconvert=True, |
| expected_result=[['||', 'A', 'B']]), |
| |
| UseReduceTestCase( |
| "|| ( ( A B ) foo? ( || ( C D ) ) )", |
| uselist=["foo"], |
| opconvert=True, |
| expected_result=[['||', ['A', 'B'], 'C', 'D']]), |
| |
| UseReduceTestCase( |
| "|| ( ( A B ) foo? ( || ( C D ) ) )", |
| uselist=["foo"], |
| opconvert=False, |
| expected_result=['||', [['A', 'B'], 'C', 'D']]), |
| |
| UseReduceTestCase( |
| "|| ( ( A B ) || ( C D ) )", |
| expected_result=['||', [['A', 'B'], 'C', 'D']]), |
| |
| UseReduceTestCase( |
| "|| ( ( A B ) || ( C D || ( E ( F G ) || ( H ) ) ) )", |
| expected_result=['||', [['A', 'B'], 'C', 'D', 'E', ['F', 'G'], 'H']]), |
| |
| UseReduceTestCase( |
| "|| ( ( A B ) || ( C D || ( E ( F G ) || ( H ) ) ) )", |
| opconvert=True, |
| expected_result=[['||', ['A', 'B'], 'C', 'D', 'E', ['F', 'G'], 'H']]), |
| |
| UseReduceTestCase( |
| "|| ( foo? ( A B ) )", |
| uselist=["foo"], |
| expected_result=['A', 'B']), |
| |
| UseReduceTestCase( |
| "|| ( || ( foo? ( A B ) ) )", |
| uselist=["foo"], |
| expected_result=['A', 'B']), |
| |
| UseReduceTestCase( |
| "|| ( || ( || ( a? ( b? ( c? ( || ( || ( || ( d? ( e? ( f? ( A B ) ) ) ) ) ) ) ) ) ) ) )", |
| uselist=["a", "b", "c", "d", "e", "f"], |
| expected_result=['A', 'B']), |
| |
| UseReduceTestCase( |
| "|| ( || ( ( || ( a? ( ( b? ( c? ( || ( || ( || ( ( d? ( e? ( f? ( A B ) ) ) ) ) ) ) ) ) ) ) ) ) ) )", |
| uselist=["a", "b", "c", "d", "e", "f"], |
| expected_result=['A', 'B']), |
| |
| UseReduceTestCase( |
| "|| ( ( A ( || ( B ) ) ) )", |
| expected_result=['A', 'B']), |
| |
| UseReduceTestCase( |
| "|| ( ( A B ) || ( foo? ( bar? ( ( C D || ( baz? ( E ) ( F G ) || ( H ) ) ) ) ) ) )", |
| uselist=["foo", "bar", "baz"], |
| expected_result=['||', [['A', 'B'], ['C', 'D', '||', ['E', ['F', 'G'], 'H']]]]), |
| |
| UseReduceTestCase( |
| "|| ( ( A B ) || ( foo? ( bar? ( ( C D || ( baz? ( E ) ( F G ) || ( H ) ) ) ) ) ) )", |
| uselist=["foo", "bar", "baz"], |
| opconvert=True, |
| expected_result=[['||', ['A', 'B'], ['C', 'D', ['||', 'E', ['F', 'G'], 'H']]]]), |
| |
| UseReduceTestCase( |
| "|| ( foo? ( A B ) )", |
| uselist=["foo"], |
| opconvert=True, |
| expected_result=['A', 'B']), |
| |
| UseReduceTestCase( |
| "|| ( || ( foo? ( A B ) ) )", |
| uselist=["foo"], |
| opconvert=True, |
| expected_result=['A', 'B']), |
| |
| UseReduceTestCase( |
| "|| ( || ( || ( a? ( b? ( c? ( || ( || ( || ( d? ( e? ( f? ( A B ) ) ) ) ) ) ) ) ) ) ) )", |
| uselist=["a", "b", "c", "d", "e", "f"], |
| opconvert=True, |
| expected_result=['A', 'B']), |
| |
| # flat test |
| UseReduceTestCase( |
| "A", |
| flat=True, |
| expected_result=["A"]), |
| UseReduceTestCase( |
| "( A )", |
| flat=True, |
| expected_result=["A"]), |
| UseReduceTestCase( |
| "|| ( A B )", |
| flat=True, |
| expected_result=["||", "A", "B"]), |
| UseReduceTestCase( |
| "|| ( A || ( B C ) )", |
| flat=True, |
| expected_result=["||", "A", "||", "B", "C"]), |
| UseReduceTestCase( |
| "|| ( A || ( B C D ) )", |
| flat=True, |
| expected_result=["||", "A", "||", "B", "C", "D"]), |
| UseReduceTestCase( |
| "|| ( A || ( B || ( C D ) E ) )", |
| flat=True, |
| expected_result=["||", "A", "||", "B", "||", "C", "D", "E"]), |
| UseReduceTestCase( |
| "( || ( ( ( A ) B ) ) )", |
| flat=True, |
| expected_result=["||", "A", "B"]), |
| UseReduceTestCase( |
| "( || ( || ( ( A ) B ) ) )", |
| flat=True, |
| expected_result=["||", "||", "A", "B"]), |
| UseReduceTestCase( |
| "( || ( || ( ( A ) B ) ) )", |
| flat=True, |
| expected_result=["||", "||", "A", "B"]), |
| UseReduceTestCase( |
| "|| ( A )", |
| flat=True, |
| expected_result=["||", "A"]), |
| UseReduceTestCase( |
| "( || ( || ( || ( A ) foo? ( B ) ) ) )", |
| expected_result=["A"]), |
| UseReduceTestCase( |
| "( || ( || ( || ( A ) foo? ( B ) ) ) )", |
| uselist=["foo"], |
| flat=True, |
| expected_result=["||", "||", "||", "A", "B"]), |
| UseReduceTestCase( |
| "( || ( || ( bar? ( A ) || ( foo? ( B ) ) ) ) )", |
| flat=True, |
| expected_result=["||", "||", "||"]), |
| UseReduceTestCase( |
| "( || ( || ( bar? ( A ) || ( foo? ( B ) ) ) ) )", |
| uselist=["foo", "bar"], |
| flat=True, |
| expected_result=["||", "||", "A", "||", "B"]), |
| UseReduceTestCase( |
| "A || ( bar? ( C ) ) foo? ( bar? ( C ) ) B", |
| flat=True, |
| expected_result=["A", "||", "B"]), |
| UseReduceTestCase( |
| "|| ( A ) || ( B )", |
| flat=True, |
| expected_result=["||", "A", "||", "B"]), |
| UseReduceTestCase( |
| "foo? ( A ) foo? ( B )", |
| flat=True, |
| expected_result=[]), |
| UseReduceTestCase( |
| "foo? ( A ) foo? ( B )", |
| uselist=["foo"], |
| flat=True, |
| expected_result=["A", "B"]), |
| |
| # use flag validation |
| UseReduceTestCase( |
| "foo? ( A )", |
| uselist=["foo"], |
| is_valid_flag=self.always_true, |
| expected_result=["A"]), |
| UseReduceTestCase( |
| "foo? ( A )", |
| is_valid_flag=self.always_true, |
| expected_result=[]), |
| |
| # token_class |
| UseReduceTestCase( |
| "foo? ( dev-libs/A )", |
| uselist=["foo"], |
| token_class=Atom, |
| expected_result=["dev-libs/A"]), |
| UseReduceTestCase( |
| "foo? ( dev-libs/A )", |
| token_class=Atom, |
| expected_result=[]), |
| ) |
| |
| test_cases_xfail = ( |
| UseReduceTestCase("? ( A )"), |
| UseReduceTestCase("!? ( A )"), |
| UseReduceTestCase("( A"), |
| UseReduceTestCase("A )"), |
| UseReduceTestCase("||( A B )"), |
| UseReduceTestCase("|| (A B )"), |
| UseReduceTestCase("|| ( A B)"), |
| UseReduceTestCase("|| ( A B"), |
| UseReduceTestCase("|| A B )"), |
| UseReduceTestCase("|| A B"), |
| UseReduceTestCase("|| ( A B ) )"), |
| UseReduceTestCase("|| || B C"), |
| UseReduceTestCase("|| ( A B || )"), |
| UseReduceTestCase("a? A"), |
| UseReduceTestCase("( || ( || || ( A ) foo? ( B ) ) )"), |
| UseReduceTestCase("( || ( || bar? ( A ) foo? ( B ) ) )"), |
| UseReduceTestCase("foo?"), |
| UseReduceTestCase("foo? || ( A )"), |
| UseReduceTestCase("|| ( )"), |
| UseReduceTestCase("foo? ( )"), |
| |
| # SRC_URI stuff |
| UseReduceTestCase("http://foo/bar -> blah.tbz2", is_src_uri=True, eapi=EAPI_WITHOUT_SRC_URI_ARROWS), |
| UseReduceTestCase("|| ( http://foo/bar -> blah.tbz2 )", is_src_uri=True, eapi=EAPI_WITH_SRC_URI_ARROWS), |
| UseReduceTestCase("http://foo/bar -> foo? ( ftp://foo/a )", is_src_uri=True, eapi=EAPI_WITH_SRC_URI_ARROWS), |
| UseReduceTestCase("http://foo/bar blah.tbz2 ->", is_src_uri=True, eapi=EAPI_WITH_SRC_URI_ARROWS), |
| UseReduceTestCase("-> http://foo/bar blah.tbz2 )", is_src_uri=True, eapi=EAPI_WITH_SRC_URI_ARROWS), |
| UseReduceTestCase("http://foo/bar ->", is_src_uri=True, eapi=EAPI_WITH_SRC_URI_ARROWS), |
| UseReduceTestCase("http://foo/bar -> foo? ( http://foo.com/foo )", is_src_uri=True, eapi=EAPI_WITH_SRC_URI_ARROWS), |
| UseReduceTestCase("foo? ( http://foo/bar -> ) blah.tbz2", is_src_uri=True, eapi=EAPI_WITH_SRC_URI_ARROWS), |
| UseReduceTestCase("http://foo/bar -> foo/blah.tbz2", is_src_uri=True, eapi=EAPI_WITH_SRC_URI_ARROWS), |
| UseReduceTestCase("http://foo/bar -> -> bar.tbz2 foo? ( ftp://foo/a )", is_src_uri=True, eapi=EAPI_WITH_SRC_URI_ARROWS), |
| |
| UseReduceTestCase("http://foo/bar -> bar.tbz2 foo? ( ftp://foo/a )", is_src_uri=False, eapi=EAPI_WITH_SRC_URI_ARROWS), |
| |
| UseReduceTestCase( |
| "A", |
| opconvert=True, |
| flat=True), |
| |
| # use flag validation |
| UseReduceTestCase("1.0? ( A )"), |
| UseReduceTestCase("!1.0? ( A )"), |
| UseReduceTestCase("!? ( A )"), |
| UseReduceTestCase("!?? ( A )"), |
| UseReduceTestCase( |
| "foo? ( A )", |
| is_valid_flag=self.always_false, |
| ), |
| UseReduceTestCase( |
| "foo? ( A )", |
| uselist=["foo"], |
| is_valid_flag=self.always_false, |
| ), |
| |
| # token_class |
| UseReduceTestCase( |
| "foo? ( A )", |
| uselist=["foo"], |
| token_class=Atom), |
| UseReduceTestCase( |
| "A(B", |
| token_class=Atom), |
| ) |
| |
| for test_case in test_cases: |
| # If it fails then show the input, since lots of our |
| # test cases have the same output but different input, |
| # making it difficult deduce which test has failed. |
| self.assertEqual(test_case.run(), test_case.expected_result, |
| "input: '%s' result: %s != %s" % (test_case.deparray, |
| test_case.run(), test_case.expected_result)) |
| |
| for test_case in test_cases_xfail: |
| self.assertRaisesMsg(test_case.deparray, (InvalidDependString, ValueError), test_case.run) |