fix: Handle None values in calculate_content_hash - Add test case to reproduce TypeError with None values - Fix handling of None values in special_attributes, shipping_options and images - Ensure consistent empty value handling (empty string instead of 'None') - Fixes #395

This commit is contained in:
Jens Bergmann
2025-02-03 10:20:35 +01:00
committed by Sebastian Thomschke
parent f51dab0c3f
commit be8eee6aa0
2 changed files with 27 additions and 4 deletions

View File

@@ -28,3 +28,26 @@ def test_ensure() -> None:
with pytest.raises(AssertionError):
utils.ensure(lambda: False, "FALSE", timeout = 2)
def test_calculate_content_hash_with_none_values() -> None:
"""Test calculate_content_hash with None values in the ad configuration."""
ad_cfg = {
# Minimale Konfiguration mit None-Werten wie im Bug-Report beschrieben
"id": "123456789",
"created_on": "2022-07-19T07:30:20.489289",
"updated_on": "2025-01-22T19:46:46.735896",
"title": "Test Anzeige",
"description": "Test Beschreibung",
"images": [None, "/path/to/image.jpg", None], # None-Werte in der images Liste
"shipping_options": None, # None statt Liste
"special_attributes": None, # None statt Dictionary
"contact": {
"street": None # None-Wert in contact
}
}
# Sollte keinen TypeError werfen
hash_value = utils.calculate_content_hash(ad_cfg)
assert isinstance(hash_value, str)
assert len(hash_value) == 64 # SHA-256 Hash ist 64 Zeichen lang