refactor: bzzoiro.py 按管线拆分为 5 个模块
单文件 852 行按职责拆分,保持 BzzoiroSource 与 get_source("bzzoiro") 行为不变:
- bzzoiro_common HTTP 抓取(多 key 轮换) + 字段转换原语
- bzzoiro_events fetch_bzzoiro_events + BzzoiroSource.ingest + Bronze 补写
- bzzoiro_standings standings 管线
- bzzoiro_stats stats 回填
- pipeline_write RawEvent/IngestFailure/DataLineage 写入助手
子模块运行期经聚合门面 src.data.bzzoiro 解析可替换协作者,
单文件时代的 bz.* monkeypatch 语义完全保留。
路由 import 已指向新模块(ingest.py / schedules.py)。
This commit is contained in:
@@ -79,18 +79,18 @@ class TestWriteBufferStrategy:
|
||||
def test_bzzoirot_new_match_available_at_is_two_hours_after_kickoff(self):
|
||||
"""bzzoiro 新建比赛(stats 回填创建 MatchStats)时 available_at 应为开球 + 2 小时。"""
|
||||
import inspect
|
||||
from src.data import bzzoiro
|
||||
from src.data import bzzoiro_stats
|
||||
|
||||
source = inspect.getsource(bzzoiro)
|
||||
source = inspect.getsource(bzzoiro_stats)
|
||||
assert 'timedelta(hours=2)' in source, \
|
||||
"bzzoiro 应使用 match_date + timedelta(hours=2) 作为 available_at"
|
||||
|
||||
def test_bzzoirot_multiple_writes_use_two_hour_buffer(self):
|
||||
"""bzzoiro 多处写入(创建/更新)都应使用 2 小时缓冲。"""
|
||||
import inspect
|
||||
from src.data import bzzoiro
|
||||
from src.data import bzzoiro_stats
|
||||
|
||||
source = inspect.getsource(bzzoiro)
|
||||
source = inspect.getsource(bzzoiro_stats)
|
||||
count = source.count('timedelta(hours=2)')
|
||||
assert count >= 2, f"期望至少 2 处 timedelta(hours=2),实际 {count} 处"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user