diff --git a/scripts/filters.py b/scripts/filters.py index 99aff93..aca0e1b 100644 --- a/scripts/filters.py +++ b/scripts/filters.py @@ -32,7 +32,7 @@ def include_characters(queryset, value): character = script_json.strip_special_characters(character.strip()) if character in ",;:/": continue - queryset = queryset.filter(content__contains=[{"id": name_to_id(character)}]) + queryset = queryset.filter(content__contains=[{"id": script_json.name_to_id(character)}]) return queryset @@ -41,14 +41,10 @@ def exclude_characters(queryset, value): character = script_json.strip_special_characters(character.strip()) if character in ",;:/": continue - queryset = queryset.exclude(content__contains=[{"id": name_to_id(character)}]) + queryset = queryset.exclude(content__contains=[{"id": script_json.name_to_id(character)}]) return queryset -def name_to_id(name: str): - return name.replace(" ", "_").replace("'", "").lower() - - class BaseScriptVersionFilter(filters.FilterSet): all_scripts = django_filters.filters.BooleanFilter( method="display_all_scripts", diff --git a/scripts/script_json.py b/scripts/script_json.py index bd9f740..7f2b7a4 100644 --- a/scripts/script_json.py +++ b/scripts/script_json.py @@ -50,6 +50,10 @@ def strip_special_characters(character_id): return character_id.replace("_", "").replace("-", "").lower() +def name_to_id(name): + return name.replace(" ", "").replace("'", "").lower() + + def strip_special_characters_from_json(json): new_json = [] for item in json: diff --git a/tests/test_name_to_id.py b/tests/test_name_to_id.py new file mode 100644 index 0000000..d564e51 --- /dev/null +++ b/tests/test_name_to_id.py @@ -0,0 +1,21 @@ +import pytest + +from scripts.script_json import name_to_id + + +@pytest.mark.parametrize( + "name, expected", + [ + ("Snake Charmer", "snakecharmer"), + ("Mutant", "mutant"), + ("Fortune Teller", "fortuneteller"), + ("Pit-Hag", "pit-hag"), + ("Lil' Monsta", "lilmonsta"), + ("snakecharmer", "snakecharmer"), + ("SNAKE CHARMER", "snakecharmer"), + (" Snake Charmer ", "snakecharmer"), + ("", ""), + ], +) +def test_name_to_id(name, expected): + assert name_to_id(name) == expected