mirror of
https://github.com/Second-Hand-Friends/kleinanzeigen-bot.git
synced 2026-03-13 10:51:51 +01:00
feat: add type safe Config model
This commit is contained in:
committed by
Sebastian Thomschke
parent
e7a3d46d25
commit
1369da1c34
@@ -6,6 +6,7 @@ from typing import Any
|
||||
import pytest
|
||||
|
||||
from kleinanzeigen_bot import ads
|
||||
from kleinanzeigen_bot.model.config_model import Config
|
||||
|
||||
|
||||
def test_calculate_content_hash_with_none_values() -> None:
|
||||
@@ -90,12 +91,6 @@ def test_calculate_content_hash_with_none_values() -> None:
|
||||
True,
|
||||
""
|
||||
),
|
||||
# Test non-string values
|
||||
(
|
||||
{"ad_defaults": {"description_prefix": 123, "description_suffix": True}},
|
||||
True,
|
||||
""
|
||||
),
|
||||
# Add test for malformed config
|
||||
(
|
||||
{}, # Empty config
|
||||
@@ -108,69 +103,13 @@ def test_calculate_content_hash_with_none_values() -> None:
|
||||
True,
|
||||
""
|
||||
),
|
||||
# Test for non-dict ad_defaults
|
||||
(
|
||||
{"ad_defaults": "invalid"},
|
||||
True,
|
||||
""
|
||||
),
|
||||
# Test for invalid type in description field
|
||||
(
|
||||
{"ad_defaults": {"description": 123}},
|
||||
True,
|
||||
""
|
||||
)
|
||||
])
|
||||
def test_get_description_affixes(
|
||||
config:dict[str, Any],
|
||||
prefix:bool,
|
||||
expected:str
|
||||
expected:str,
|
||||
test_bot_config:Config
|
||||
) -> None:
|
||||
"""Test get_description_affixes function with various inputs."""
|
||||
result = ads.get_description_affixes(config, prefix = prefix)
|
||||
assert result == expected
|
||||
|
||||
|
||||
@pytest.mark.parametrize(("config", "prefix", "expected"), [
|
||||
# Add test for malformed config
|
||||
(
|
||||
{}, # Empty config
|
||||
True,
|
||||
""
|
||||
),
|
||||
# Test for missing ad_defaults
|
||||
(
|
||||
{"some_other_key": {}},
|
||||
True,
|
||||
""
|
||||
),
|
||||
# Test for non-dict ad_defaults
|
||||
(
|
||||
{"ad_defaults": "invalid"},
|
||||
True,
|
||||
""
|
||||
),
|
||||
# Test for invalid type in description field
|
||||
(
|
||||
{"ad_defaults": {"description": 123}},
|
||||
True,
|
||||
""
|
||||
)
|
||||
])
|
||||
def test_get_description_affixes_edge_cases(config:dict[str, Any], prefix:bool, expected:str) -> None:
|
||||
"""Test edge cases for description affix handling."""
|
||||
assert ads.get_description_affixes(config, prefix = prefix) == expected
|
||||
|
||||
|
||||
@pytest.mark.parametrize(("config", "expected"), [
|
||||
(None, ""), # Test with None
|
||||
([], ""), # Test with an empty list
|
||||
("string", ""), # Test with a string
|
||||
(123, ""), # Test with an integer
|
||||
(3.14, ""), # Test with a float
|
||||
(set(), ""), # Test with an empty set
|
||||
])
|
||||
def test_get_description_affixes_edge_cases_non_dict(config:Any, expected:str) -> None:
|
||||
"""Test get_description_affixes function with non-dict inputs."""
|
||||
result = ads.get_description_affixes(config, prefix = True)
|
||||
result = ads.get_description_affixes(test_bot_config.with_values(config), prefix = prefix)
|
||||
assert result == expected
|
||||
|
||||
Reference in New Issue
Block a user