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
+46
View File
@@ -0,0 +1,46 @@
"""
测试雪花 ID 生成器。
无外部依赖,可离线运行。
"""
from paste.util.snow_id import IdWorker
class TestSnowflakeId:
"""雪花 ID 生成器测试"""
def test_snow_id_generates_string(self):
"""测试 Snowflake ID 是否生成字符串"""
id_worker = IdWorker.get_id_worker()
sid = f'{id_worker.get_id()}'
assert isinstance(sid, str), "雪花 ID 必须是字符串"
assert len(sid) > 0, "雪花 ID 必须包含内容"
def test_snow_id_is_unique(self):
"""测试生成的 ID 是否唯一(简单验证)"""
id_worker = IdWorker.get_id_worker()
ids = [id_worker.get_id() for _ in range(50)]
assert len(set(ids)) == len(ids), "All generated IDs should be unique"
def test_snow_id_monotonic_increase(self):
"""测试雪花 ID 单调递增"""
id_worker = IdWorker.get_id_worker()
ids = [id_worker.get_id() for _ in range(100)]
for i in range(1, len(ids)):
assert ids[i] > ids[i - 1], \
f"ID at position {i} should be greater than previous"
def test_snow_id_worker_isolation(self):
"""测试不同 worker 生成的 ID 不冲突"""
worker1 = IdWorker.get_id_worker(datacenter_id=1, worker_id=1)
worker2 = IdWorker.get_id_worker(datacenter_id=2, worker_id=2)
ids = [worker1.get_id() for _ in range(50)] + \
[worker2.get_id() for _ in range(50)]
assert len(set(ids)) == len(ids), \
"IDs from different workers should be unique"
def test_snow_id_high_throughput(self):
"""测试短时间高并发生成"""
id_worker = IdWorker.get_id_worker()
ids = [id_worker.get_id() for _ in range(1000)]
assert len(set(ids)) == 1000