Files
dj/integration-work/verify_continuity_ui.py

20 lines
1.6 KiB
Python

import json,os,pathlib,sqlite3,subprocess,time,urllib.request
root=pathlib.Path(__file__).resolve().parent.parent
data=pathlib.Path((root/'integration-work/continuity-test-current.txt').read_text())
stage=root/'integration-work/stage-4.0.11/app'
with sqlite3.connect(data/'huobao.sqlite3') as db:
db.execute("UPDATE storyboards SET video_url='static/videos/source.mp4' WHERE id=2")
db.execute("UPDATE storyboards SET continuity_start='右手持剑,朝向右侧' WHERE id=3")
db.execute("UPDATE storyboards SET deleted_at=NULL WHERE id=3")
db.execute("UPDATE episodes SET script_content='隔离测试剧本:人物持剑向右走。' WHERE id=2")
env={**os.environ,'ELECTRON_RUN_AS_NODE':'1','PORT':'18930','HUOBAO_DATA_DIR':str(data),'SQLITE_PATH':str(data/'huobao.sqlite3'),'FRONTEND_DIST':str(root/'huobao-source/frontend/.output/public'),'WORKSPACE_PATH':str(stage/'resources/workspace-template'),'FFMPEG_BIN':str(stage/'resources/bin/ffmpeg.exe'),'FFPROBE_BIN':str(stage/'resources/bin/ffprobe.exe')}
log=(data/'ui-server.log').open('w',encoding='utf-8');process=subprocess.Popen([str(stage/'HuobaoDrama.exe'),str(data/'backend.mjs')],cwd=data,env=env,stdout=log,stderr=log,creationflags=subprocess.CREATE_NO_WINDOW)
try:
for _ in range(100):
try:
urllib.request.urlopen('http://127.0.0.1:18930/api/v1/health',timeout=1);break
except OSError:time.sleep(.1)
subprocess.run(['node',str(root/'integration-work/browser-test/verify_continuity_ui.cjs')],cwd=root,env={**os.environ,'CONTINUITY_FIXTURE':str(data)},check=True)
print('Screenshot:',data/'continuity-ui.png')
finally:process.terminate();process.wait(timeout=10);log.close()