def test_push_down_multiple_rules(self): s_expr = ['stylesheet', ['rule', ['block', ['declaration', ['property', 'color']], ['decldelim', ';']]], ['rule', ['block', ['declaration', ['value', 'red']], ['decldelim', ';']]]] expected = ['stylesheet', ['rule', ['block', ['declaration', ['property', 'color'], ['decldelim', ';']]]], ['rule', ['block', ['declaration', ['value', 'red'], ['decldelim', ';']]]]] parser.SExprTransformer()._push_down(s_expr) assert s_expr == expected
def test_whitespace_pull_up_multiple(self): s_expr = ['root', ['ch1', ['ch2', ['ch3', ['s', ' '], ['p', 'p']]]], ['ch1', ['ch2', ['ch3', ['s', ' '], ['p', 'p']]]] ] expected = ['root', ['s', ' '], ['ch1', ['ch2', ['ch3', ['p', 'p']]]], ['s', ' '], ['ch1', ['ch2', ['ch3', ['p', 'p']]]] ] parser.SExprTransformer()._pull_up_whitespace(s_expr) assert s_expr == expected
def test_add_missing_tokens(self): s_expr = ['stylesheet', ['ruleset', ['selector', ['simpleselector', ['ident', 'a']], ['delim'], ['simpleselector', ['ident', 'p']]], ['block', ['declaration', ['property', ['ident', 'font']], ['value', ['ident', 'black']]], ['decldelim']]]] expected = ['stylesheet', ['ruleset', ['selector', ['simpleselector', ['ident', 'a']], ['delim', ','], ['simpleselector', ['ident', 'p']]], ['block', ['symbol', '{'], ['declaration', ['property', ['ident', 'font']], ['colon', ':'], ['value', ['ident', 'black']]], ['decldelim', ';'], ['symbol', '}']]]] parser.SExprTransformer()._add_missing_tokens(s_expr) assert s_expr == expected
def test(self): s_expr = ['ruleset', ['block', ['symbol', '{'], ['s', '\n '], ['declaration', ['property', ['ident', 'color']], ['colon', ':'], ['value', ['s', ' '], ['ident', 'red']], ['decldelim', ';']], ['s', '\n '], ['declaration', ['property', ['ident', 'margin']], ['colon', ':'], ['value', ['s', ' '], ['dimension', ['number', '5'], ['ident', 'px']]], ['decldelim', ';']], ['s', '\n'], ['symbol', '}']]] expected = ['ruleset', ['block', ['symbol', '{'], ['s', '\n '], ['declaration', ['property', ['ident', 'color']], ['colon', ':'], ['s', ' '], ['value', ['ident', 'red']], ['decldelim', ';']], ['s', '\n '], ['declaration', ['property', ['ident', 'margin']], ['colon', ':'], ['s', ' '], ['value', ['dimension', ['number', '5'], ['ident', 'px']]], ['decldelim', ';']], ['s', '\n'], ['symbol', '}']]] parser.SExprTransformer()._pull_up_whitespace(s_expr) assert s_expr == expected
def test_add_value_transformation_delim(self): s_expr = ['delim'] expected = ['delim', ','] parser.SExprTransformer()._add_value_transformation(s_expr) assert s_expr == expected
def test_push_down(self): s_expr = ['block', ['declaration', ['property', 'color']], ['decldelim', ';']] expected = ['block', ['declaration', ['property', 'color'], ['decldelim', ';']]] parser.SExprTransformer()._push_down(s_expr) assert s_expr == expected
def test_block_transformation(self): s_expr = ['block', ['decl', '...'], ['decl', '...']] expected = ['block', ['symbol', '{'], ['decl', '...'], ['decl', '...'], ['symbol', '}']] parser.SExprTransformer()._block_transformation(s_expr) assert s_expr == expected
def test_declaration_transformation(self): s_expr = ['declaration', ['property', '...'], ['value', '...']] expected = ['declaration', ['property', '...'], ['colon', ':'], ['value', '...']] parser.SExprTransformer()._declaration_transformation(s_expr) assert s_expr == expected
def test_get_whitespace_type_tab_after_nl(self): result = parser.SExprTransformer()._get_whitespace_type('\t', '\n') assert result == 'indent'
def test_get_whitespace_type_space_after_tab(self): result = parser.SExprTransformer()._get_whitespace_type(' ', '\t') assert result == 'space'
def test_split_whitespace_value_nl(self): str = '\n ' expected = ['\n', ' '] result = parser.SExprTransformer()._split_whitespace_value(str) assert result == expected
def test_split_up_whitespace_space_tab_space_nl(self): s_expr = ['root', ['s', ' \t \n']] expected = ['root', ['space', ' '], ['tab', '\t'], ['space', ' '], ['newline', '\n']] parser.SExprTransformer()._split_up_whitespace(s_expr) assert s_expr == expected
def test_whitespace_pull_up_both_with_stop(self): s_expr = ['root', ['ch1', ['stopper', ''], ['ch2', ['ch3', ['s', ' '], ['p', 'p'], ['s', '\t']]], ['b', '']]] expected = ['root', ['ch1', ['stopper', ''], ['s', ' '], ['ch2', ['ch3', ['p', 'p']]], ['s', '\t'], ['b', '']]] parser.SExprTransformer()._pull_up_whitespace(s_expr) assert s_expr == expected