調整儀錶板和編輯器的界面,新增快速設定按鈕,並添加了相關的測試腳本和模板文件。

This commit is contained in:
2026-05-26 12:04:00 +08:00
parent 03d7eca139
commit f1bc0a30e1
10 changed files with 346 additions and 134 deletions

63
scripts/test_phase1.py Normal file
View File

@@ -0,0 +1,63 @@
"""Automated basic end-to-end test for Phase 1 features.
Creates a project, updates settings, uploads an image, lists media, deletes image.
"""
import io
import os
import sys
import time
import json
import requests
from PIL import Image
BASE = 'http://127.0.0.1:5000'
def create_project(name='test-project'):
r = requests.post(f'{BASE}/api/projects', json={'name': name, 'description': 'automated test'})
r.raise_for_status()
return r.json()
def update_settings(slug):
r = requests.put(f'{BASE}/api/projects/{slug}/settings', json={'title':'Auto Test','description':'desc'})
r.raise_for_status()
return r.json()
def upload_image(slug):
# generate small PNG
im = Image.new('RGB', (100,100), color=(123,222,100))
buf = io.BytesIO()
im.save(buf, format='PNG')
buf.seek(0)
files = {'file': ('test.png', buf, 'image/png')}
r = requests.post(f'{BASE}/api/projects/{slug}/media/upload', files=files)
r.raise_for_status()
return r.json()
def list_media(slug):
r = requests.get(f'{BASE}/api/projects/{slug}/media/list')
r.raise_for_status()
return r.json()
def delete_media(slug, rel):
r = requests.delete(f'{BASE}/api/projects/{slug}/media/{rel}')
return r
if __name__ == '__main__':
print('Creating project...')
proj = create_project('phase1-e2e')
slug = proj['slug']
print('Project created:', slug)
print('Updating settings...')
print(update_settings(slug))
print('Uploading image...')
up = upload_image(slug)
print('Upload result:', up)
time.sleep(0.5)
items = list_media(slug)
print('Media list count:', len(items))
if items:
it = items[0]
rel = f"media/images/{it['date']}/{it['filename']}"
print('Deleting', rel)
r = delete_media(slug, rel)
print('Delete status', r.status_code)
print('Done')