openlark 0.18.0

飞书开放平台 Rust SDK - 企业级高覆盖率 API 客户端,极简依赖一条命令
Documentation
import re
import tomllib
import unittest
from pathlib import Path


ROOT = Path(__file__).resolve().parents[2]
WORKFLOW_PATH = ROOT / ".github" / "workflows" / "release.yml"
PUBLISH_SCRIPT_PATH = ROOT / "scripts" / "publish-workspace.sh"


def publishable_workspace_crates():
    root_manifest = tomllib.loads((ROOT / "Cargo.toml").read_text(encoding="utf-8"))
    package_names = {root_manifest["package"]["name"]}
    for member in root_manifest["workspace"]["members"]:
        manifest = tomllib.loads((ROOT / member / "Cargo.toml").read_text(encoding="utf-8"))
        package = manifest["package"]
        if package.get("publish", True) is not False:
            package_names.add(package["name"])
    return package_names


class ReleaseWorkflowTests(unittest.TestCase):
    def test_release_checks_coverage_and_endpoint_contracts(self):
        workflow = WORKFLOW_PATH.read_text(encoding="utf-8")

        self.assertIn("python3 tools/check_typed_coverage_release.py", workflow)
        self.assertIn(
            "python3 tools/validate_api_contracts.py --all-crates --strict endpoint",
            workflow,
        )

    def test_publish_step_covers_every_publishable_workspace_crate(self):
        workflow = WORKFLOW_PATH.read_text(encoding="utf-8")
        self.assertIn("bash scripts/publish-workspace.sh", workflow)

        publish_script = PUBLISH_SCRIPT_PATH.read_text(encoding="utf-8")
        loop = re.search(r"PUBLISH_ORDER=\((?P<crates>.*?)\n\)", publish_script, re.DOTALL)
        self.assertIsNotNone(loop)
        planned = set(re.findall(r'"(openlark(?:-[a-z-]+)?)"', loop.group("crates")))

        self.assertEqual(planned, publishable_workspace_crates())

    def test_publish_step_is_fail_fast(self):
        publish_script = PUBLISH_SCRIPT_PATH.read_text(encoding="utf-8")

        self.assertIn("set -euo pipefail", publish_script)
        self.assertNotRegex(publish_script, r"cargo publish[^\n]+\|\|")
        self.assertIn('grep -q "is already uploaded"', publish_script)


if __name__ == "__main__":
    unittest.main()