66 lines
2.2 KiB
Python
66 lines
2.2 KiB
Python
import pytest
|
|
from src.basic_data_handling.casting_nodes import CastToString, CastToInt, CastToFloat, CastToBoolean, CastToList, CastToSet, CastToDict
|
|
|
|
|
|
def test_cast_to_string():
|
|
node = CastToString()
|
|
assert node.convert_to_string(123) == ("123",)
|
|
assert node.convert_to_string(None) == ("None",)
|
|
assert node.convert_to_string(True) == ("True",)
|
|
assert node.convert_to_string("hello") == ("hello",)
|
|
|
|
|
|
def test_cast_to_int():
|
|
node = CastToInt()
|
|
assert node.convert_to_int("123") == (123,)
|
|
assert node.convert_to_int(456) == (456,)
|
|
with pytest.raises(ValueError):
|
|
node.convert_to_int("abc")
|
|
with pytest.raises(ValueError):
|
|
node.convert_to_int(None)
|
|
|
|
|
|
def test_cast_to_float():
|
|
node = CastToFloat()
|
|
assert node.convert_to_float("123.45") == (123.45,)
|
|
assert node.convert_to_float(67.89) == (67.89,)
|
|
assert node.convert_to_float(123) == (123.0,)
|
|
with pytest.raises(ValueError):
|
|
node.convert_to_float("abc")
|
|
with pytest.raises(ValueError):
|
|
node.convert_to_float(None)
|
|
|
|
|
|
def test_cast_to_boolean():
|
|
node = CastToBoolean()
|
|
assert node.convert_to_boolean(0) == (False,)
|
|
assert node.convert_to_boolean(1) == (True,)
|
|
assert node.convert_to_boolean("") == (False,)
|
|
assert node.convert_to_boolean("non_empty_string") == (True,)
|
|
|
|
|
|
def test_cast_to_list():
|
|
node = CastToList()
|
|
assert node.convert_to_list(123) == ([123],)
|
|
assert node.convert_to_list([1, 2, 3]) == ([1, 2, 3],)
|
|
assert node.convert_to_list("hello") == (["hello"],)
|
|
assert node.convert_to_list(None) == ([None],)
|
|
|
|
|
|
def test_cast_to_set():
|
|
node = CastToSet()
|
|
assert node.convert_to_set(123) == ({123},)
|
|
assert node.convert_to_set([1, 2, 2]) == ({1, 2},)
|
|
assert node.convert_to_set("abc") == ({"abc"},)
|
|
assert node.convert_to_set(None) == ({None},)
|
|
|
|
|
|
def test_cast_to_dict():
|
|
node = CastToDict()
|
|
assert node.convert_to_dict({"key": "value"}) == ({"key": "value"},)
|
|
assert node.convert_to_dict([("key1", "value1"), ("key2", "value2")]) == ({"key1": "value1", "key2": "value2"},)
|
|
with pytest.raises(ValueError):
|
|
node.convert_to_dict(123)
|
|
with pytest.raises(ValueError):
|
|
node.convert_to_dict("string")
|