approve: Bug 4Sxq… 状态机收口:fix_bug 流转 fixed
This commit is contained in:
parent
d9e1094d0c
commit
b5703c8723
68
build.sh
68
build.sh
@ -583,6 +583,74 @@ assert s2['groups'] == 8 and s2['items'] == 74, '第 2 轮种子契约不满足'
|
|||||||
print('[seed] 幂等零差异校验通过: 8 组 74 项')
|
print('[seed] 幂等零差异校验通过: 8 组 74 项')
|
||||||
PYEOF
|
PYEOF
|
||||||
|
|
||||||
|
# ---- 12.1 pbl_template 离线兜底模板种子(幂等)----
|
||||||
|
log "pbl_template 种子注入(tpl_offline_default)"
|
||||||
|
"${PY}" - <<'PYEOF_SEED_TEMPLATE'
|
||||||
|
import json, asyncio, os, sys
|
||||||
|
_WS = os.environ.get('SEED_WS_DIR', '/d/pipeline/workspaces/0/sdlc_general')
|
||||||
|
for _p in (os.path.join(_WS, 'modules', 'pbl_common'), os.path.join(_WS, 'modules', 'pbl_template'), os.path.join(_WS, 'pkgs'), '/d/pipeline/binpkg_overlay'):
|
||||||
|
if os.path.isdir(_p) and _p not in sys.path:
|
||||||
|
sys.path.insert(0, _p)
|
||||||
|
os.chdir(os.environ.get('SEED_APP_DIR', os.getcwd()))
|
||||||
|
from pbl_template.seed import seed_all_sync, seed_templates
|
||||||
|
# 先跑 async 版(在 seed 段同 loop 内,确保连接池一致)
|
||||||
|
async def _seed():
|
||||||
|
r1 = await seed_templates()
|
||||||
|
print('[seed.tpl round1]', json.dumps(r1, ensure_ascii=False, sort_keys=True))
|
||||||
|
r2 = await seed_templates()
|
||||||
|
print('[seed.tpl round2]', json.dumps(r2, ensure_ascii=False, sort_keys=True))
|
||||||
|
return r1, r2
|
||||||
|
s1, s2 = asyncio.run(_seed())
|
||||||
|
assert s1['ok'] is True, 'pbl_template 第 1 轮种子失败: %s' % s1.get('errors', [])
|
||||||
|
assert s2['ok'] is True and s2['templates_inserted'] == 0 and s2['items_inserted'] == 0, \
|
||||||
|
'pbl_template 重复执行有差异(幂等失败)'
|
||||||
|
print('[seed.tpl] 幂等零差异校验通过: tpl=%d items=%d' % (s1['templates_inserted'], s1['items_inserted']))
|
||||||
|
PYEOF_SEED_TEMPLATE
|
||||||
|
|
||||||
|
# ---- 12.2 pbl_assessment 默认量规种子(幂等)----
|
||||||
|
log "pbl_assessment 种子注入(rubric_default_5level)"
|
||||||
|
"${PY}" - <<'PYEOF_SEED_ASSESS'
|
||||||
|
import json, asyncio, os, sys
|
||||||
|
_WS = os.environ.get('SEED_WS_DIR', '/d/pipeline/workspaces/0/sdlc_general')
|
||||||
|
for _p in (os.path.join(_WS, 'modules', 'pbl_common'), os.path.join(_WS, 'modules', 'pbl_assessment'), os.path.join(_WS, 'pkgs'), '/d/pipeline/binpkg_overlay'):
|
||||||
|
if os.path.isdir(_p) and _p not in sys.path:
|
||||||
|
sys.path.insert(0, _p)
|
||||||
|
os.chdir(os.environ.get('SEED_APP_DIR', os.getcwd()))
|
||||||
|
from pbl_assessment.seed import seed_rubrics, seed_all_sync
|
||||||
|
async def _seed():
|
||||||
|
r1 = await seed_rubrics()
|
||||||
|
print('[seed.rubric round1]', json.dumps(r1, ensure_ascii=False, sort_keys=True))
|
||||||
|
r2 = await seed_rubrics()
|
||||||
|
print('[seed.rubric round2]', json.dumps(r2, ensure_ascii=False, sort_keys=True))
|
||||||
|
return r1, r2
|
||||||
|
s1, s2 = asyncio.run(_seed())
|
||||||
|
assert s1['ok'] is True, 'pbl_assessment 第 1 轮种子失败: %s' % s1.get('errors', [])
|
||||||
|
assert s2['ok'] is True and s2['rubrics_inserted'] == 0 and s2['criteria_inserted'] == 0, \
|
||||||
|
'pbl_assessment 重复执行有差异(幂等失败)'
|
||||||
|
print('[seed.rubric] 幂等零差异校验通过: rubric=%d criteria=%d' % (s1['rubrics_inserted'], s1['criteria_inserted']))
|
||||||
|
PYEOF_SEED_ASSESS
|
||||||
|
|
||||||
|
# ---- 12.3 pbl_validation 内置 14 维规则种子(幂等)----
|
||||||
|
log "pbl_validation 种子注入(vrs_14dim_v1)"
|
||||||
|
"${PY}" - <<'PYEOF_SEED_VALIDATE'
|
||||||
|
import json, os, sys
|
||||||
|
_WS = os.environ.get('SEED_WS_DIR', '/d/pipeline/workspaces/0/sdlc_general')
|
||||||
|
for _p in (os.path.join(_WS, 'modules', 'pbl_common'), os.path.join(_WS, 'modules', 'pbl_validation'), os.path.join(_WS, 'pkgs'), '/d/pipeline/binpkg_overlay'):
|
||||||
|
if os.path.isdir(_p) and _p not in sys.path:
|
||||||
|
sys.path.insert(0, _p)
|
||||||
|
os.chdir(os.environ.get('SEED_APP_DIR', os.getcwd()))
|
||||||
|
from pbl_validation.init import seed_builtin_rules
|
||||||
|
# seed_builtin_rules 是同步 def,直接调用
|
||||||
|
s1 = seed_builtin_rules(dbname=None, tenant_id='')
|
||||||
|
print('[seed.validate round1] seeded=%d' % s1)
|
||||||
|
s2 = seed_builtin_rules(dbname=None, tenant_id='')
|
||||||
|
print('[seed.validate round2] seeded=%d' % s2)
|
||||||
|
assert s2 == 0, 'pbl_validation 重复执行有差异(幂等失败,第 2 轮 seeded=%d != 0)' % s2
|
||||||
|
print('[seed.validate] 幂等零差异校验通过: rules=%d (vrs_14dim_v1)' % s1)
|
||||||
|
PYEOF_SEED_VALIDATE
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ---- 12.5 RBAC 路径注册(Bug WIu0Rkn0KwB0XTjYZz0qk 修复:原脚本从不注册)----
|
# ---- 12.5 RBAC 路径注册(Bug WIu0Rkn0KwB0XTjYZz0qk 修复:原脚本从不注册)----
|
||||||
# 中央聚合器 apps/pbls/scripts/load_path.py 把各模块 + 宿主自有端点(含本次新增的
|
# 中央聚合器 apps/pbls/scripts/load_path.py 把各模块 + 宿主自有端点(含本次新增的
|
||||||
# /healthz、/healthz.dspy、/api/public/health)逐条写入 permission/rolepermission。
|
# /healthz、/healthz.dspy、/api/public/health)逐条写入 permission/rolepermission。
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user