Squashed 'paste-framework/' content from commit 34e8684

git-subtree-dir: paste-framework
git-subtree-split: 34e8684c4bc3cebbe177509f42ab4ef5b5425a7a
This commit is contained in:
zwf
2026-06-02 19:09:22 +08:00
commit 4729698049
107 changed files with 21484 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
"""
测试字典工具。
无外部依赖,可离线运行。
"""
from paste.util import udict
class TestUdict:
"""字典工具测试"""
def test_get_by_path_simple(self):
"""简单路径读取"""
data = {"a": 1, "b": 2}
assert udict.get_by_path(data, "a") == 1
def test_get_by_path_nested(self):
"""嵌套路径读取"""
data = {"a": {"b": {"c": 123}}}
assert udict.get_by_path(data, "a.b.c") == 123
def test_get_by_path_missing(self):
"""缺失路径处理"""
data = {"a": 1}
assert udict.get_by_path(data, "b.c.d", "default") == "default"
def test_get_by_path_none_default(self):
"""缺失路径无默认值"""
data = {"a": 1}
assert udict.get_by_path(data, "b") is None
def test_get_with_default_existing(self):
"""存在的键读取"""
data = {"key": "value"}
assert udict.get_with_default(data, "key", "fallback") == "value"
def test_get_with_default_missing(self):
"""缺失键使用默认值"""
data = {"key": "value"}
assert udict.get_with_default(data, "missing", "fallback") == "fallback"
def test_get_with_default_none_value(self):
"""值为 None 时使用默认值"""
data = {"key": None}
assert udict.get_with_default(data, "key", "fallback") == "fallback"