dy-dashboard/tests/test_spot_application_workflow.py
2026-10-28 11:14:17 +08:00

25 lines
1.3 KiB
Python

"""现货申请新增与审核流程。"""
import unittest
from pathlib import Path
from app import app
ROOT=Path(__file__).resolve().parents[1]
ROUTE=(ROOT/'routes/spot.py').read_text(encoding='utf-8')
APP=(ROOT/'static/js/app.js').read_text(encoding='utf-8')
class SpotApplicationWorkflowTest(unittest.TestCase):
def setUp(self):
self.client=app.test_client()
with self.client.session_transaction() as s:
s['user_id']=1;s['username']='甘旭东';s['real_name']='甘旭东';s['role']='super_admin';s['user_level']='employee'
def test_required_fields_are_enforced(self):
r=self.client.post('/api/spot/application/create',data={'product_name':'测试品','sample_quantity':'1'})
self.assertEqual(r.status_code,200);self.assertIn('条形码',r.get_json()['msg'])
def test_decision_endpoint_exists_and_requires_rejection_reason(self):
self.assertIn("@spot_bp.route('/api/spot/application/decision'",ROUTE)
r=self.client.post('/api/spot/application/decision',json={'id':1,'decision':'驳回','reason':''})
self.assertEqual(r.status_code,200);self.assertIn('驳回原因',r.get_json()['msg'])
def test_modal_has_image_replace_and_decision_ui(self):
for text in ('openSpotApplicationModal','spotApplicationImageRemove','decideSpotApplication','通过','驳回'):
self.assertIn(text,APP)
if __name__=='__main__':unittest.main()