| import math |
|
|
| import pytest |
| from langflow.utils.util_strings import truncate_long_strings |
|
|
|
|
| @pytest.mark.parametrize( |
| ("input_data", "max_length", "expected"), |
| [ |
| |
| ("short string", 20, "short string"), |
| |
| ("exact", 5, "exact"), |
| |
| ("long string", 7, "long st..."), |
| |
| ("", 5, ""), |
| |
| ("a", 1, "a"), |
| |
| ("こんにちは", 3, "こんに..."), |
| |
| (12345, 3, 12345), |
| |
| (math.pi, 4, math.pi), |
| |
| (True, 2, True), |
| |
| (None, 5, None), |
| |
| ("a" * 1000, 10, "a" * 10 + "..."), |
| ], |
| ) |
| def test_truncate_long_strings_non_dict_list(input_data, max_length, expected): |
| result = truncate_long_strings(input_data, max_length) |
| assert result == expected |
|
|
|
|
| |
| def test_truncate_long_strings_zero_max_length(): |
| assert truncate_long_strings("any string", 0) == "..." |
|
|
|
|
| |
| def test_truncate_long_strings_negative_max_length(): |
| assert truncate_long_strings("any string", -1) == "any string" |
|
|
|
|
| |
| def test_truncate_long_strings_none_max_length(): |
| from langflow.utils.constants import MAX_TEXT_LENGTH |
|
|
| long_string = "a" * (MAX_TEXT_LENGTH + 10) |
| result = truncate_long_strings(long_string, None) |
| assert len(result) == MAX_TEXT_LENGTH + 3 |
| assert result == "a" * MAX_TEXT_LENGTH + "..." |
|
|