56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
"""
|
|
复制工单号页:token 不带工单号,打开页能看到工单号,过期给 410。
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
import sys
|
|
import unittest
|
|
|
|
ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
|
|
if ROOT not in sys.path:
|
|
sys.path.insert(0, ROOT)
|
|
|
|
os.environ.setdefault("YTD_ENV", "test")
|
|
os.environ.setdefault("REDIS_BACKEND", "memory")
|
|
os.environ.setdefault("CHECKPOINT_BACKEND", "memory")
|
|
os.environ.setdefault("MESSAGE_STORE_BACKEND", "memory")
|
|
os.environ.setdefault("LEDGER_BACKEND", "memory")
|
|
|
|
from fastapi import FastAPI
|
|
from fastapi.testclient import TestClient
|
|
|
|
from agent.channel.h5 import router as h5_router
|
|
from agent.channel.h5.copy_page import render_copy_page
|
|
from agent.channel.h5.copy_store import build_copy_ticket_url, lookup_copy_token
|
|
|
|
|
|
class CopyTicketH5Tests(unittest.TestCase):
|
|
def test_token_roundtrip_and_page(self) -> None:
|
|
url = build_copy_ticket_url("WO202609150001")
|
|
self.assertIn("/inquiry-form/copy/", url)
|
|
token = url.rstrip("/").rsplit("/", 1)[-1]
|
|
self.assertEqual(lookup_copy_token(token), "WO202609150001")
|
|
self.assertNotIn("WO202609150001", token)
|
|
html = render_copy_page("WO202609150001")
|
|
self.assertIn("WO202609150001", html)
|
|
self.assertIn("setClipboardData", html)
|
|
|
|
def test_http_copy_page(self) -> None:
|
|
url = build_copy_ticket_url("WO202609150002")
|
|
token = url.rstrip("/").rsplit("/", 1)[-1]
|
|
app = FastAPI()
|
|
app.include_router(h5_router)
|
|
client = TestClient(app)
|
|
hit = client.get(f"/inquiry-form/copy/{token}")
|
|
self.assertEqual(hit.status_code, 200)
|
|
self.assertIn("WO202609150002", hit.text)
|
|
miss = client.get("/inquiry-form/copy/not-a-real-token")
|
|
self.assertEqual(miss.status_code, 410)
|
|
self.assertIn("过期", miss.text)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|