참고소스 수정본
This commit is contained in:
31
참고/guardrails-main/tests/unit_tests/utils/test_safe_get.py
Normal file
31
참고/guardrails-main/tests/unit_tests/utils/test_safe_get.py
Normal file
@@ -0,0 +1,31 @@
|
||||
import pytest
|
||||
|
||||
from guardrails.utils.safe_get import safe_get
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"container,key,default,expected_value",
|
||||
[
|
||||
([1, 2, 3], 1, None, 2),
|
||||
([1, 2, 3], 4, None, None),
|
||||
([1, 2, 3], 4, 42, 42),
|
||||
([1, 2, None], 2, 42, 42),
|
||||
({"a": 1, "b": 2, "c": 3}, "b", None, 2),
|
||||
({"a": 1, "b": 2, "c": 3}, "d", None, None),
|
||||
({"a": 1, "b": 2, "c": 3}, "d", 42, 42),
|
||||
("123", 1, None, "2"),
|
||||
("123", 4, None, None),
|
||||
("123", 4, 42, 42),
|
||||
# Falsy values must be returned, not replaced by default
|
||||
([0, "a", "b"], 0, None, 0),
|
||||
([False, "a"], 0, None, False),
|
||||
(["", "a"], 0, None, ""),
|
||||
# Out-of-bounds and non-subscriptable containers use default
|
||||
([], 0, "fallback", "fallback"),
|
||||
(None, 0, "fallback", "fallback"),
|
||||
],
|
||||
)
|
||||
def test_safe_get(container, key, default, expected_value):
|
||||
actual = safe_get(container, key, default)
|
||||
|
||||
assert actual == expected_value
|
||||
Reference in New Issue
Block a user