Files
dify/api/tests/unit_tests/controllers/openapi/test_meta_version.py
2026-05-20 10:27:34 +08:00

55 lines
1.7 KiB
Python

"""Meta endpoint /openapi/v1/_version — no auth, returns version + edition."""
from __future__ import annotations
def test_version_endpoint_returns_200_without_auth(openapi_app):
client = openapi_app.test_client()
response = client.get("/openapi/v1/_version")
assert response.status_code == 200
payload = response.get_json()
assert isinstance(payload, dict)
assert "version" in payload
assert "edition" in payload
assert isinstance(payload["version"], str)
assert payload["edition"] in ("SELF_HOSTED", "CLOUD")
def test_version_endpoint_ignores_bearer_header(openapi_app):
"""Endpoint is auth-free — a bogus bearer should not break it."""
client = openapi_app.test_client()
response = client.get(
"/openapi/v1/_version",
headers={"Authorization": "Bearer total-nonsense"},
)
assert response.status_code == 200
payload = response.get_json()
assert "version" in payload
assert "edition" in payload
def test_version_endpoint_reflects_edition_config(openapi_app, monkeypatch):
from configs import dify_config
monkeypatch.setattr(dify_config, "EDITION", "CLOUD")
client = openapi_app.test_client()
response = client.get("/openapi/v1/_version")
assert response.status_code == 200
assert response.get_json()["edition"] == "CLOUD"
def test_version_endpoint_falls_back_to_self_hosted_on_unexpected_edition(openapi_app, monkeypatch):
from configs import dify_config
monkeypatch.setattr(dify_config, "EDITION", "EXPERIMENTAL")
client = openapi_app.test_client()
response = client.get("/openapi/v1/_version")
assert response.status_code == 200
assert response.get_json()["edition"] == "SELF_HOSTED"