Esempio n. 1
0
 def test_invalid_nested_wikilinks(self):
     self.assertEqual(
         {
             'Parameter': [],
             'ParserFunction': [],
             'Template': [],
             'WikiLink': [[10, 15]],
             'Comment': [],
             'ExtTag': [[0, 24]]
         }, parse_to_spans(bytearray(b'<ref>[[L| [[S]] ]]</ref>')))
Esempio n. 2
0
 def test_invalid_nested_wikilinks_in_ref(self):
     self.assertEqual(
         {
             'Parameter': [],
             'ParserFunction': [],
             'Template': [],
             'WikiLink': [[0, 13]],
             'Comment': [],
             'ExtTag': []
         }, parse_to_spans(bytearray(b'[[L| [[S]] ]]')))
Esempio n. 3
0
 def test_single_brace_after_pf_remove(self):
     self.assertEqual(
         {
             'Parameter': [],
             'ParserFunction': [[4, 17]],
             'Template': [[1, 21]],
             'WikiLink': [],
             'Comment': [],
             'ExtensionTag': []
         }, parse_to_spans(bytearray(b'{{{ {{#if:v|y|n}}} }}')))
Esempio n. 4
0
 def test_invalid_table_in_template(self):
     self.assertEqual(
         {
             'Comment': [],
             'ExtensionTag': [],
             'Parameter': [],
             'ParserFunction': [],
             'Template': [[0, 17]],
             'WikiLink': []
         }, parse_to_spans(bytearray(b'{{t|\n{|a\n|b\n|}\n}}')))
Esempio n. 5
0
 def test_eliminate_invalid_templates_after_extracting_params(self):
     self.assertEqual(
         {
             'Comment': [],
             'ExtensionTag': [],
             'Parameter': [[0, 9]],
             'ParserFunction': [],
             'Template': [],
             'WikiLink': []
         }, parse_to_spans(bytearray(b'{{{_|2}}}')))
Esempio n. 6
0
 def test_nested_parser_functions_containing_param(self):
     self.assertEqual(
         {
             'Comment': [],
             'ExtensionTag': [],
             'Parameter': [[18, 25]],
             'ParserFunction': [[0, 31], [9, 28]],
             'Template': [],
             'WikiLink': []
         }, parse_to_spans(bytearray(b'{{#if: | {{#expr: {{{p}}} }} }}')))
Esempio n. 7
0
 def test_nested_wikilinks_in_ref(self):
     self.assertEqual(
         {
             'Parameter': [],
             'ParserFunction': [],
             'Template': [],
             'WikiLink': [[30, 38], [5, 40]],
             'Comment': [],
             'ExtensionTag': [[0, 46]]
         },
         parse_to_spans(
             bytearray(b'<ref>[[File:Example.jpg|thumb|[[Link]]]]</ref>')))
Esempio n. 8
0
 def test_nested_param_semiparser(self):
     self.assertEqual(
         [[1, 14]],
         parse_to_spans(bytearray(b'{{{#if:v|y|n}}}'))['ParserFunction'],
     )
Esempio n. 9
0
 def test_parse_inner_contents_of_wikilink_inside_ref(self):
     self.assertEqual(
         [[7, 20]],
         parse_to_spans(
             bytearray(b'<ref>[[{{text|link}}]]</ref>'))['Template'],
     )
Esempio n. 10
0
 def test_single_brace_after_first_tl_removal(self):
     self.assertEqual(
         [[7, 16], [0, 20]],
         parse_to_spans(bytearray(b'{{text|{{text|}}} }}'))['Template'],
     )
Esempio n. 11
0
 def test_single_brace_in_tl(self):
     self.assertEqual(
         [[0, 12]],
         parse_to_spans(bytearray(b'{{text|i}n}}'))['Template'],
     )
Esempio n. 12
0
def bytearray_parse_to_spans(bytes_: bytes) -> Dict[str, List[List[int]]]:
    return {
        k: [i[:2] for i in v]
        for k, v in parse_to_spans(bytearray(bytes_)).items()}
Esempio n. 13
0
def bytearray_parse_to_spans(bytes_: bytes):
    return parse_to_spans(bytearray(bytes_))
Esempio n. 14
0
 def test_nested_template_with_unmatched_leading_brace(self):
     self.assertEqual(
         [0, 21],
         parse_to_spans(bytearray(b'{{text|{{{text|a}} }}'))['Template'][0])
Esempio n. 15
0
 def test_params_are_extracted_before_parser_functions(self):
     self.assertEqual([[0, 17]],
                      parse_to_spans(
                          bytearray(b'{{{#expr:1+1|3}}}'))['Parameter'])