diff --git a/unittests/test_transformers.py b/unittests/test_transformers.py index 0571dbd31de9b37230f0ee1d93c22c6df47c87e7..5a1a9cfacca1450158e7fb1ba5330f16eca75169 100644 --- a/unittests/test_transformers.py +++ b/unittests/test_transformers.py @@ -35,12 +35,13 @@ from unittest.mock import MagicMock, Mock, patch import linkahead as db import pytest import yaml -from pytest import raises - from caoscrawler.converters import Converter, ListElementConverter from caoscrawler.scanner import create_transformer_registry, scan_directory from caoscrawler.stores import GeneralStore -from caoscrawler.transformer_functions import replace, split +from caoscrawler.transformer_functions import (cast_to_bool, cast_to_float, + cast_to_int, cast_to_str, + replace, split) +from pytest import raises UNITTESTDIR = Path(__file__).parent @@ -163,3 +164,33 @@ def test_empty_functions_list(converter_registry): conv.apply_transformers(values, transformer_functions) assert values['b'] == "16_45" + + +def test_cast_transformer_functions(): + for val in ("True", "true", "False", "false"): + assert type(cast_to_bool(val, {})) == bool + if val[1] == "r": + assert cast_to_bool(val, {}) + else: + assert not cast_to_bool(val, {}) + for val_err in ("jaksdlfj", "0", 1): + with pytest.raises(ValueError): + cast_to_bool(val_err, {}) + assert not cast_to_bool(False, {}) + assert cast_to_bool(True, {}) + + assert cast_to_int("24", {}) == 24 + assert cast_to_int(24.0, {}) == 24 + assert cast_to_int(24, {}) == 24 + with pytest.raises(ValueError): + cast_to_int("24dsf", {}) + cast_to_int("24.0", {}) == 24 + + assert cast_to_float("24", {}) == 24.0 + assert cast_to_float("24.0", {}) == 24.0 + assert cast_to_float(24.0, {}) == 24.0 + assert cast_to_float(24, {}) == 24.0 + with pytest.raises(ValueError): + cast_to_float("24dsf", {}) + + assert cast_to_str(24, {}) == "24"