首次提交

This commit is contained in:
zwf
2026-06-02 16:26:10 +08:00
commit 291e6fcaae
79 changed files with 11283 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