feat: update audit platform workspace
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
"""企查查配置与客户端测试。"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import hashlib
|
||||
|
||||
import pytest
|
||||
|
||||
from fastapi_admin import config
|
||||
|
||||
|
||||
def test_qichacha_settings_are_exported_from_app_toml():
|
||||
"""企查查配置应通过 fastapi_admin.config 导出。"""
|
||||
assert config.QICHACHA_BASE_URL == "https://api.qichacha.com"
|
||||
assert config.QICHACHA_ENTERPRISE_PATH == "/ECIV4/GetBasicDetailsByName"
|
||||
assert config.QICHACHA_DISHONESTY_PATH == "/ShixinCheck/GetList"
|
||||
assert config.QICHACHA_TIMEOUT == 30
|
||||
assert config.QICHACHA_CACHE_DAYS == 30
|
||||
|
||||
|
||||
def test_qichacha_client_builds_expected_signature_headers(monkeypatch):
|
||||
"""企查查客户端应按 AppKey + Timespan + SecretKey 生成大写 MD5 Token。"""
|
||||
from fastapi_modules.fastapi_leaudit.services.impl.qichachaClient import QichachaClient
|
||||
|
||||
monkeypatch.setattr("time.time", lambda: 1779433125)
|
||||
client = QichachaClient(AppKey="app-key", SecretKey="secret-key")
|
||||
|
||||
headers = client.BuildHeaders()
|
||||
|
||||
expected = hashlib.md5("app-key1779433125secret-key".encode("utf-8")).hexdigest().upper()
|
||||
assert headers == {"Token": expected, "Timespan": "1779433125"}
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_qichacha_client_parses_enterprise_and_dishonesty(monkeypatch):
|
||||
"""企查查客户端应分别解析工商与失信接口结果。"""
|
||||
from fastapi_modules.fastapi_leaudit.services.impl.qichachaClient import QichachaClient
|
||||
|
||||
calls: list[tuple[str, dict[str, str]]] = []
|
||||
|
||||
async def fake_request(self, Url: str, Params: dict[str, str]) -> dict:
|
||||
calls.append((Url, Params))
|
||||
if "GetBasicDetailsByName" in Url:
|
||||
return {
|
||||
"Status": "200",
|
||||
"Message": "成功",
|
||||
"Result": {"Name": "广州测试有限公司", "CreditCode": "91440000TEST"},
|
||||
}
|
||||
return {
|
||||
"Status": "200",
|
||||
"Message": "成功",
|
||||
"Result": {"VerifyResult": 1, "Data": [{"Anno": "案号1"}]},
|
||||
}
|
||||
|
||||
monkeypatch.setattr(QichachaClient, "Request", fake_request)
|
||||
client = QichachaClient(AppKey="app-key", SecretKey="secret-key")
|
||||
|
||||
enterprise = await client.GetEnterpriseInfo("广州测试有限公司")
|
||||
dishonesty = await client.GetDishonestyInfo("广州测试有限公司")
|
||||
|
||||
assert enterprise["Name"] == "广州测试有限公司"
|
||||
assert enterprise["CreditCode"] == "91440000TEST"
|
||||
assert dishonesty["VerifyResult"] == 1
|
||||
assert dishonesty["Data"][0]["Anno"] == "案号1"
|
||||
assert calls[0][1] == {"key": "app-key", "keyword": "广州测试有限公司"}
|
||||
assert calls[1][1] == {"key": "app-key", "searchKey": "广州测试有限公司"}
|
||||
Reference in New Issue
Block a user