Skip to content

Commit f7cc0c2

Browse files
committed
Add test cases for wiki parsing
1 parent de40178 commit f7cc0c2

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

plugins/tests/wikireader_test.py

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
#-*- coding: utf-8 -*-
2+
from plugins.Plugin import TestPluginCommon
3+
from plugins.modules.wikiReader import read_wiki_table, read_wiki_templates, wikitag2text
4+
5+
class Test(TestPluginCommon):
6+
def test_wikitag2text(self):
7+
for k in ["{{tag|abc|def}}", "{{Tag|abc|def}}", "{{ Tag | abc | def }}", "{{Key|abc|def}}", "{{Tag|abc||def}}", ]:
8+
assert wikitag2text(k) == "abc=def"
9+
10+
for k in ["{{Tag|abc|}}", "{{tag|abc}}", "{{Key|abc}}"]:
11+
assert wikitag2text(k) == "abc=*"
12+
assert wikitag2text(k, star_value=False) == "abc"
13+
14+
assert wikitag2text("{{tag|abc|def}} and {{tag|ghi|jkl}}", quote=True) == "`abc=def` and `ghi=jkl`"
15+
16+
17+
def test_wikitable(self):
18+
t = """
19+
{| class="wikitable"
20+
! species || species:wikidata || {{key|leaf_cycle}} || {{key|leaf_type}}
21+
|-
22+
| Abies alba || [[:d:Q146992|Q146992]] || evergreen || '''needleleaved'''
23+
|-
24+
|Abies pinsapo
25+
|[[:d:Q849381|Q849381]]
26+
|evergreen
27+
|needleleaved
28+
|-
29+
| Ziziphus jujuba || [[:d:Q11181633|Q11181633]] || deciduous
30+
|}"""
31+
# Basic table reading + missing cell
32+
assert read_wiki_table(t) == [
33+
["Abies alba", "Q146992", "evergreen", "needleleaved"],
34+
["Abies pinsapo", "Q849381", "evergreen", "needleleaved"],
35+
["Ziziphus jujuba", "Q11181633", "deciduous", None]]
36+
37+
# Header retention and ensuring templates like {{key|*}} are retained
38+
assert read_wiki_table(t, skip_headers=False) == [
39+
["species", "species:wikidata", "{{key|leaf_cycle}}", "{{key|leaf_type}}"],
40+
["Abies alba", "Q146992", "evergreen", "needleleaved"],
41+
["Abies pinsapo", "Q849381", "evergreen", "needleleaved"],
42+
["Ziziphus jujuba", "Q11181633", "deciduous", None]]
43+
44+
# Ensure we can use markup if needed
45+
assert read_wiki_table(t, keep_markup=True) == [
46+
["Abies alba", "[[:d:Q146992|Q146992]]", "evergreen", "'''needleleaved'''"],
47+
["Abies pinsapo", "[[:d:Q849381|Q849381]]", "evergreen", "needleleaved"],
48+
["Ziziphus jujuba", "[[:d:Q11181633|Q11181633]]", "deciduous", None]]
49+
50+
51+
def test_wikitemplate(self):
52+
t = """
53+
{{Deprecated features/item|lang={{{lang|}}}
54+
|suggestion={{Tag|leaf_type}} '''or''' {{Tag|leaf_cycle}}
55+
| 22 }}
56+
"""
57+
assert read_wiki_templates(t, "Deprecated features/item")[0] == [
58+
"{{Deprecated features/item|lang=\n|suggestion={{Tag|leaf_type}} or {{Tag|leaf_cycle}}\n| 22 }}",
59+
"Deprecated features/item",
60+
"lang=",
61+
"suggestion={{Tag|leaf_type}} or {{Tag|leaf_cycle}}",
62+
"22"]
63+
assert read_wiki_templates(t, "Deprecated features/item", keep_markup = True)[0] == [
64+
t.strip(),
65+
"Deprecated features/item",
66+
"lang={{{lang|}}}",
67+
"suggestion={{Tag|leaf_type}} '''or''' {{Tag|leaf_cycle}}",
68+
"22"]

0 commit comments

Comments
 (0)