50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
|
|
"""Tests: Wiki → Skill Mapping (KarateRelevanz, RelevanzLevel)."""
|
||
|
|
|
||
|
|
from smw_mapper import (
|
||
|
|
map_wiki_to_skill,
|
||
|
|
parse_wiki_relevance_level,
|
||
|
|
)
|
||
|
|
|
||
|
|
|
||
|
|
def test_parse_wiki_relevance_level_accepted_range():
|
||
|
|
assert parse_wiki_relevance_level("1") == 1
|
||
|
|
assert parse_wiki_relevance_level("3") == 3
|
||
|
|
assert parse_wiki_relevance_level("Level_2_-_foo") == 2
|
||
|
|
|
||
|
|
|
||
|
|
def test_parse_wiki_relevance_level_rejects():
|
||
|
|
assert parse_wiki_relevance_level("") is None
|
||
|
|
assert parse_wiki_relevance_level("4") is None
|
||
|
|
assert parse_wiki_relevance_level("0") is None
|
||
|
|
assert parse_wiki_relevance_level("text") is None
|
||
|
|
|
||
|
|
|
||
|
|
def test_map_wiki_to_skill_karate_and_level():
|
||
|
|
out = map_wiki_to_skill(
|
||
|
|
"Test_Skill",
|
||
|
|
99,
|
||
|
|
{
|
||
|
|
"Summary": ["Kurztext"],
|
||
|
|
"KarateRelevanz": ["''Wichtig'' für [[Kumite]]"],
|
||
|
|
"RelevanzLevel": ["2"],
|
||
|
|
},
|
||
|
|
)
|
||
|
|
assert out["name"] == "Test_Skill"
|
||
|
|
assert out["description"] == "Kurztext"
|
||
|
|
assert "Kumite" in out["karate_relevance"]
|
||
|
|
assert out["relevance_level"] == 2
|
||
|
|
assert out["warnings"] == []
|
||
|
|
|
||
|
|
|
||
|
|
def test_map_wiki_to_skill_synonym_props():
|
||
|
|
out = map_wiki_to_skill("S", None, {"relevanzlevel": ["3"], "karaterelevanz": ["Nur Karate"]})
|
||
|
|
assert out["relevance_level"] == 3
|
||
|
|
assert out["karate_relevance"] == "Nur Karate"
|
||
|
|
|
||
|
|
|
||
|
|
def test_map_wiki_to_skill_invalid_level_warning():
|
||
|
|
out = map_wiki_to_skill("S", None, {"RelevanzLevel": ["9"]})
|
||
|
|
assert "relevance_level" not in out
|
||
|
|
assert len(out["warnings"]) == 1
|
||
|
|
assert "9" in out["warnings"][0]
|