feat: 完成三角色工作台及金租对公Skills全流程演示
This commit is contained in:
@@ -25,6 +25,16 @@ class RiskAgentTests(unittest.TestCase):
|
||||
self.assertAlmostEqual(result["values"]["metrics.debt_ratio"],13200/18000)
|
||||
self.assertTrue(any(f["category"]=="信息缺失" for f in result["findings"]))
|
||||
self.assertEqual(self.client.get(self.base+"/runs/history").json()[0]["id"],result["id"])
|
||||
def test_financial_leasing_skills_and_plan_are_loaded(self):
|
||||
catalog=self.client.get(self.base+"/catalog").json()
|
||||
skill_ids={item["id"] for item in catalog["skills"]}
|
||||
self.assertTrue({"skill-fl-lessee","skill-fl-asset","skill-fl-sale-leaseback","skill-fl-guarantee","skill-fl-review-report"}.issubset(skill_ids))
|
||||
plan=next(item for item in catalog["plans"] if item["id"]=="plan-financial-leasing-corporate")
|
||||
self.assertEqual(len(plan["cards"]),5)
|
||||
native={item["name"] for item in self.client.get(self.base+"/native-skills/list").json()}
|
||||
self.assertIn("financial-leasing-asset-review",native)
|
||||
self.assertNotIn("get_weather",native)
|
||||
self.assertNotIn("get_weather_open",native)
|
||||
def test_sql_write_denied(self):
|
||||
card=dict(engine.SEED["cards"][0],sql="DELETE FROM project")
|
||||
with self.assertRaises(Exception):engine.query_card(card,engine.SEED["connections"][0],"XB-2026-001")
|
||||
@@ -62,6 +72,18 @@ class RiskAgentTests(unittest.TestCase):
|
||||
self.assertEqual(response.status_code,200,response.text)
|
||||
item=response.json();self.assertEqual(item["status"],"draft")
|
||||
self.assertEqual(self.client.delete(self.base+"/skills/"+item["id"]).status_code,200)
|
||||
def test_admin_imports_skill_folder_as_native_skill_card(self):
|
||||
content="---\nname: local-leasing-check\ndisplay_name: 本地金租核查\ndescription: 核查租赁物证据\ncategory: 租赁物核验\ninputs: [lease.total_value]\nversion: 1.0.0\n---\n先读取授权证据,不作审批结论。"
|
||||
base=Path(self.temp.name)/"native"
|
||||
with patch.object(engine,"SKILLS_BASE_DIR",base):
|
||||
response=self.client.post(self.base+"/native-skills/import",json={"skills":[{"skill_md":content}]})
|
||||
self.assertEqual(response.status_code,201,response.text)
|
||||
imported=response.json()["skills"][0]
|
||||
self.assertEqual(imported["name"],"本地金租核查")
|
||||
self.assertEqual(imported["native_skills"],["imported/local-leasing-check/SKILL.md"])
|
||||
self.assertEqual(imported["status"],"published")
|
||||
self.assertTrue((base/"skills"/"imported"/"local-leasing-check"/"SKILL.md").exists())
|
||||
self.assertEqual(self.client.post(self.base+"/native-skills/import",json={"skills":[{"skill_md":content}]}).status_code,409)
|
||||
def test_currency_units_are_normalized_with_raw_evidence(self):
|
||||
item=self.client.get(self.base+"/catalog").json()["cards"][3]
|
||||
item["unit"]="元"
|
||||
|
||||
Reference in New Issue
Block a user