All checks were successful
Deploy Development / deploy (push) Successful in 43s
Test Suite / pytest-backend (push) Successful in 38s
Test Suite / lint-backend (push) Successful in 0s
Test Suite / build-frontend (push) Successful in 15s
Test Suite / k6 /health Baseline (push) Successful in 33s
Test Suite / playwright-tests (push) Successful in 1m11s
- Added `karate_relevance` and `relevance_level` fields to the SkillCreate and SkillResponse models, allowing for more detailed skill attributes. - Updated the SMW property mapping to include these new fields, facilitating their integration during data import. - Implemented parsing logic for relevance levels from Wiki data, ensuring proper handling of values between 1 and 3. - Modified the upsert and create skill functions to support the new fields, ensuring they are correctly stored and updated in the database. - Incremented app version to 0.8.143 and updated changelog to reflect these changes.
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]
|