diff --git a/src/newcrawler/converters.py b/src/newcrawler/converters.py index a8723603376b527cfaf79329a0f44494e8f59139..1808b23e1675fc02215c99549e2d7a7124feb600 100644 --- a/src/newcrawler/converters.py +++ b/src/newcrawler/converters.py @@ -108,7 +108,6 @@ def handle_value(value: Union[dict, str], values: GeneralStore): propvalue = value # variables replacement: - # TODO: unit test missing propvalue = [replace_variables(i, values) for i in propvalue] return (propvalue, collection_mode) diff --git a/unittests/test_converters.py b/unittests/test_converters.py index ab67a5c94df8b3e3e541017fc0ac57cceb2fa2fd..587f390d347a3b597a4f16167a6ff085ae3ab187 100644 --- a/unittests/test_converters.py +++ b/unittests/test_converters.py @@ -38,6 +38,8 @@ from newcrawler.structure_elements import (File, DictTextElement, DictBooleanElement, DictDictElement, DictIntegerElement, DictFloatElement) +from newcrawler.converters import handle_value + from test_tool import rfp import pytest @@ -244,3 +246,33 @@ def test_json_converter(converter_registry): children = jsonconverter.create_children(None, broken_json) assert err.value.message.startswith("Couldn't validate") + + +def test_variable_replacement(): + values = GeneralStore() + values["a"] = 4 + values["b"] = "68" + + assert handle_value("b", values) == ("b", "single") + assert handle_value("+b", values) == ("b", "list") + assert handle_value("*b", values) == ("b", "multiproperty") + assert handle_value("$b", values) == ("68", "single") + assert handle_value("+$b", values) == ("68", "list") + assert handle_value("*$b", values) == ("68", "multiproperty") + + assert handle_value({"value": "b", + "collection_mode": "single"}, values) == ("b", "single") + assert handle_value({"value": "b", + "collection_mode": "list"}, values) == ("b", "list") + assert handle_value({"value": "b", + "collection_mode": "multiproperty"}, values) == ("b", "multiproperty") + assert handle_value({"value": "$b", + "collection_mode": "single"}, values) == ("68", "single") + assert handle_value({"value": "$b", + "collection_mode": "list"}, values) == ("68", "list") + assert handle_value({"value": "$b", + "collection_mode": "multiproperty"}, values) == ("68", "multiproperty") + + assert handle_value(["a", "b"], values) == (["a", "b"], "single") + assert handle_value(["$a", "$b"], values) == (["4", "68"], "single") +