|
|
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 + "..." |
|
|
|