chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
import pytest
|
||||
|
||||
from mlflow.utils.string_utils import (
|
||||
format_table_cell_value,
|
||||
is_string_type,
|
||||
mslex_quote,
|
||||
strip_prefix,
|
||||
strip_suffix,
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
(("original", "prefix", "expected")),
|
||||
[("smoketest", "smoke", "test"), ("", "test", ""), ("", "", ""), ("test", "", "test")],
|
||||
)
|
||||
def test_strip_prefix(original, prefix, expected):
|
||||
assert strip_prefix(original, prefix) == expected
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("original", "suffix", "expected"),
|
||||
[("smoketest", "test", "smoke"), ("", "test", ""), ("", "", ""), ("test", "", "test")],
|
||||
)
|
||||
def test_strip_suffix(original, suffix, expected):
|
||||
assert strip_suffix(original, suffix) == expected
|
||||
|
||||
|
||||
def test_is_string_type():
|
||||
assert is_string_type("validstring")
|
||||
assert is_string_type("")
|
||||
assert is_string_type((b"dog").decode("utf-8"))
|
||||
assert not is_string_type(None)
|
||||
assert not is_string_type(["teststring"])
|
||||
assert not is_string_type([])
|
||||
assert not is_string_type({})
|
||||
assert not is_string_type({"test": "string"})
|
||||
assert not is_string_type(12)
|
||||
assert not is_string_type(12.7)
|
||||
|
||||
|
||||
def test_mslex_quote():
|
||||
assert mslex_quote("abc") == "abc"
|
||||
assert mslex_quote("a b c") == '"a b c"'
|
||||
assert mslex_quote("C:\\path\\to\\file") == "C:\\path\\to\\file"
|
||||
|
||||
|
||||
def test_format_table_cell_value_basic():
|
||||
result = format_table_cell_value("field", "value")
|
||||
assert result == "value"
|
||||
|
||||
|
||||
def test_format_table_cell_value_empty():
|
||||
result = format_table_cell_value("field", None, [])
|
||||
assert result == "N/A"
|
||||
|
||||
|
||||
def test_format_table_cell_value_multiple():
|
||||
values = ["a", "b", "c", "d", "e"]
|
||||
result = format_table_cell_value("field", None, values)
|
||||
assert result == "a, b, c, ... (+2 more)"
|
||||
|
||||
|
||||
def test_format_table_cell_value_timestamp():
|
||||
timestamp = "2025-01-15T10:31:24.123Z"
|
||||
result = format_table_cell_value("info.request_time", timestamp)
|
||||
assert "2025-01-15" in result
|
||||
assert "10:31:24" in result
|
||||
|
||||
|
||||
def test_format_table_cell_value_duration_ms():
|
||||
result = format_table_cell_value("info.execution_duration_ms", 500)
|
||||
assert result == "500ms"
|
||||
|
||||
|
||||
def test_format_table_cell_value_duration_seconds():
|
||||
result = format_table_cell_value("info.execution_duration_ms", 2500)
|
||||
assert result == "2.5s"
|
||||
|
||||
|
||||
def test_format_table_cell_value_preview_truncation():
|
||||
long_text = "This is a very long preview text that should be truncated"
|
||||
result = format_table_cell_value("info.request_preview", long_text)
|
||||
assert result == "This is a very lo..."
|
||||
assert len(result) == 20
|
||||
|
||||
|
||||
def test_format_table_cell_value_invalid_timestamp():
|
||||
result = format_table_cell_value("info.request_time", "invalid-timestamp")
|
||||
assert result == "invalid-timestamp" # Should return original
|
||||
|
||||
|
||||
def test_format_table_cell_value_invalid_duration():
|
||||
result = format_table_cell_value("info.execution_duration_ms", "not-a-number")
|
||||
assert result == "not-a-number" # Should return original
|
||||
Reference in New Issue
Block a user