From e5034c9d332fd97010c08ba33fe82aa85a10ab46 Mon Sep 17 00:00:00 2001 From: Alexander Schlemmer <a.schlemmer@indiscale.com> Date: Thu, 28 Nov 2024 20:50:06 +0100 Subject: [PATCH] TST(transformers): tests for cast transformer functions --- unittests/test_transformers.py | 37 +++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/unittests/test_transformers.py b/unittests/test_transformers.py index 0571dbd3..5a1a9cfa 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" -- GitLab