def assert_this(str_, parentheses, attr_, tail): source = l.enumerate_source('') result = l.extract_tag_attribute(str_, source, parentheses) self.assertEqual(result[0], attr_) self.assertEqual(tail, result[1])
def test_parse_tag_attribute(self): def assert_this(str_, parentheses, attr_, tail): source = l.enumerate_source('') result = l.extract_tag_attribute(str_, source, parentheses) self.assertEqual(result[0], attr_) self.assertEqual(tail, result[1]) source = l.enumerate_source('') self.assertEqual(l.extract_tag_attribute("", source), None) self.assertEqual(l.extract_tag_attribute(" ", source), None) self.assertEqual(l.extract_tag_attribute("=", source), None) self.assertEqual(l.extract_tag_attribute(" = ", source), None) self.assertEqual(l.extract_tag_attribute("|", source), None) self.assertEqual(l.extract_tag_attribute("'", source), None) self.assertEqual(l.extract_tag_attribute("()", source, True), None) self.assertEqual(l.extract_tag_attribute(")", source, True), None) assert_this('attr="value"', False, 'attr="value"', '') assert_this('attr=${val}', False, 'attr="${val}"', '') assert_this('attr=(val)', False, 'attr="${val}"', '') # Test digital values assert_this('attr=7 attr2=val', False, 'attr="7"', ' attr2=val') assert_this('attr=.7 attr2=val', False, 'attr=".7"', ' attr2=val') assert_this('attr=-7 attr2=val', False, 'attr="-7"', ' attr2=val') assert_this('attr=+7 attr2=val', False, 'attr="+7"', ' attr2=val') assert_this('attr=-.7 attr2=val', False, 'attr="-.7"', ' attr2=val') assert_this('attr=+.7 attr2=val', False, 'attr="+.7"', ' attr2=val') assert_this('attr=7% attr2=val', False, 'attr="7%"', ' attr2=val') assert_this('attr=10.7 attr2=val', False, 'attr="10.7"', ' attr2=val') assert_this('attr=-10.7 attr2=val', False, 'attr="-10.7"', ' attr2=val') assert_this('attr=+10.7 attr2=val', False, 'attr="+10.7"', ' attr2=val') assert_this('attr=10.107 attr2=val', False, 'attr="10.107"', ' attr2=val') assert_this('attr=107 attr2=val', False, 'attr="107"', ' attr2=val') assert_this('style=c.selected_cover', False, 'style="${c.selected_cover}"', '') assert_this('href=item[\'url\']', False, 'href="${item[\'url\']}"', '') assert_this('value=extra_title[0]', False, 'value="${extra_title[0]}"', '') assert_this( 'attr=obj.url(request, func("test([\'") + "{test}".format(test="123"), cover[\'image\'])', False, 'attr="${obj.url(request, func("test([\'") + "{test}".format(test="123"), cover[\'image\'])}"', '') assert_this('attr=${val} selected', False, 'attr="${val}"', ' selected') assert_this('attr=(val) selected', False, 'attr="${val}"', ' selected') assert_this('attr=val selected', False, 'attr="${val}"', ' selected') assert_this('attr=_(\'i18n message\') selected', False, 'attr="${_(\'i18n message\')}"', ' selected') assert_this('attr=${val}? selected', False, """${(val) and 'attr="attr"' or ''|n}""", ' selected') assert_this('attr=(val)? selected', False, """${(val) and 'attr="attr"' or ''|n}""", ' selected') assert_this('attr=val? selected', False, """${(val) and 'attr="attr"' or ''|n}""", ' selected') assert_this('attr=${val + 1}? selected', False, """${(val + 1) and 'attr="attr"' or ''|n}""", ' selected') assert_this('attr=(val + 1)? selected', False, """${(val + 1) and 'attr="attr"' or ''|n}""", ' selected') assert_this('attr="${val}"? selected', False, 'attr="${val}"', '? selected') assert_this('attr="${\\"val\\"}"? selected', False, 'attr="${"val"}"', '? selected') assert_this('attr="value")', True, 'attr="value"', ')') assert_this('attr=${val})', True, 'attr="${val}"', ')') assert_this('attr=(val))', True, 'attr="${val}"', ')') assert_this('attr=${val}?)', True, """${(val) and 'attr="attr"' or ''|n}""", ')') assert_this('attr=(val)?)', True, """${(val) and 'attr="attr"' or ''|n}""", ')') assert_this( 'attr=(val("test() is a function"))?)', True, """${(val("test() is a function")) and 'attr="attr"' or ''|n}""", ')') assert_this('attr=${val} selected)', True, 'attr="${val}"', ' selected)') assert_this('attr=(val) selected)', True, 'attr="${val}"', ' selected)') assert_this('attr=val) selected', True, 'attr="${val}"', ') selected') assert_this('attr="${\\"val\\"}"?) selected', True, 'attr="${"val"}"', '?) selected') assert_this('attr${attr}attr="${\\"val\\"}"?) selected', True, 'attr${attr}attr="${"val"}"', '?) selected')
def test_parse_tag_attribute(self): def assert_this(str_, parentheses, attr_, tail): source = l.enumerate_source('') result = l.extract_tag_attribute(str_, source, parentheses) self.assertEqual(result[0], attr_) self.assertEqual(tail, result[1]) source = l.enumerate_source('') self.assertEqual(l.extract_tag_attribute("", source), None) self.assertEqual(l.extract_tag_attribute(" ", source), None) self.assertEqual(l.extract_tag_attribute("=", source), None) self.assertEqual(l.extract_tag_attribute(" = ", source), None) self.assertEqual(l.extract_tag_attribute("|", source), None) self.assertEqual(l.extract_tag_attribute("'", source), None) self.assertEqual(l.extract_tag_attribute("()", source, True), None) self.assertEqual(l.extract_tag_attribute(")", source, True), None) assert_this('attr="value"', False, 'attr="value"', '') assert_this('attr=${val}', False, 'attr="${val}"', '') assert_this('attr=(val)', False, 'attr="${val}"', '') # Test digital values assert_this('attr=7 attr2=val', False, 'attr="7"', ' attr2=val') assert_this('attr=.7 attr2=val', False, 'attr=".7"', ' attr2=val') assert_this('attr=-7 attr2=val', False, 'attr="-7"', ' attr2=val') assert_this('attr=+7 attr2=val', False, 'attr="+7"', ' attr2=val') assert_this('attr=-.7 attr2=val', False, 'attr="-.7"', ' attr2=val') assert_this('attr=+.7 attr2=val', False, 'attr="+.7"', ' attr2=val') assert_this('attr=7% attr2=val', False, 'attr="7%"', ' attr2=val') assert_this('attr=10.7 attr2=val', False, 'attr="10.7"', ' attr2=val') assert_this('attr=-10.7 attr2=val', False, 'attr="-10.7"', ' attr2=val') assert_this('attr=+10.7 attr2=val', False, 'attr="+10.7"', ' attr2=val') assert_this('attr=10.107 attr2=val', False, 'attr="10.107"', ' attr2=val') assert_this('attr=107 attr2=val', False, 'attr="107"', ' attr2=val') assert_this('style=c.selected_cover', False, 'style="${c.selected_cover}"', '') assert_this('href=item[\'url\']', False, 'href="${item[\'url\']}"', '') assert_this('value=extra_title[0]', False, 'value="${extra_title[0]}"', '') assert_this('attr=obj.url(request, func("test([\'") + "{test}".format(test="123"), cover[\'image\'])', False, 'attr="${obj.url(request, func("test([\'") + "{test}".format(test="123"), cover[\'image\'])}"', '') assert_this('attr=${val} selected', False, 'attr="${val}"', ' selected') assert_this('attr=(val) selected', False, 'attr="${val}"', ' selected') assert_this('attr=val selected', False, 'attr="${val}"', ' selected') assert_this('attr=_(\'i18n message\') selected', False, 'attr="${_(\'i18n message\')}"', ' selected') assert_this('attr=${val}? selected', False, """${(val) and 'attr="attr"' or ''|n}""", ' selected') assert_this('attr=(val)? selected', False, """${(val) and 'attr="attr"' or ''|n}""", ' selected') assert_this('attr=val? selected', False, """${(val) and 'attr="attr"' or ''|n}""", ' selected') assert_this('attr=${val + 1}? selected', False, """${(val + 1) and 'attr="attr"' or ''|n}""", ' selected') assert_this('attr=(val + 1)? selected', False, """${(val + 1) and 'attr="attr"' or ''|n}""", ' selected') assert_this('attr="${val}"? selected', False, 'attr="${val}"', '? selected') assert_this('attr="${\\"val\\"}"? selected', False, 'attr="${"val"}"', '? selected') assert_this('attr="value")', True, 'attr="value"', ')') assert_this('attr=${val})', True, 'attr="${val}"', ')') assert_this('attr=(val))', True, 'attr="${val}"', ')') assert_this('attr=${val}?)', True, """${(val) and 'attr="attr"' or ''|n}""", ')') assert_this('attr=(val)?)', True, """${(val) and 'attr="attr"' or ''|n}""", ')') assert_this('attr=(val("test() is a function"))?)', True, """${(val("test() is a function")) and 'attr="attr"' or ''|n}""", ')') assert_this('attr=${val} selected)', True, 'attr="${val}"', ' selected)') assert_this('attr=(val) selected)', True, 'attr="${val}"', ' selected)') assert_this('attr=val) selected', True, 'attr="${val}"', ') selected') assert_this('attr="${\\"val\\"}"?) selected', True, 'attr="${"val"}"', '?) selected') assert_this('attr${attr}attr="${\\"val\\"}"?) selected', True, 'attr${attr}attr="${"val"}"', '?) selected')