test_07_risk.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. """§7 群风控"""
  2. import pytest
  3. pytestmark = pytest.mark.integration
  4. def test_risk_keywords_and_scan(api, uid):
  5. kw = api.assert_success(
  6. api.post(
  7. "/risk/keywords",
  8. json={
  9. "keyword": f"退群{uid}",
  10. "category": "complaint",
  11. "severity": 3,
  12. "enabled": 1,
  13. "remark": "pytest",
  14. },
  15. ),
  16. status=201,
  17. )
  18. kw_id = kw["id"]
  19. listed = api.assert_success(api.get("/risk/keywords"))
  20. assert any(k["id"] == kw_id for k in listed)
  21. scan = api.assert_success(
  22. api.post(
  23. "/risk/keywords/scan",
  24. json={"content": f"我想退群{uid}了", "roomId": "room-1", "messageId": 1},
  25. )
  26. )
  27. assert "hitCount" in scan or "alerts" in scan
  28. alerts = api.assert_success(api.get("/risk/alerts"))
  29. assert isinstance(alerts, list)
  30. orders = api.assert_success(api.get("/risk/work-orders"))
  31. assert isinstance(orders, list)
  32. api.assert_success(api.delete(f"/risk/keywords/{kw_id}"))