Add version-aware documentation resolution

This commit is contained in:
2026-07-31 22:48:07 +02:00
parent c1ea7bb8f1
commit 0d8a49c8af
4 changed files with 225 additions and 8 deletions
+60
View File
@@ -46,6 +46,66 @@ class FakePrincipal:
class DocsContextTests(unittest.TestCase):
def test_topics_are_filtered_by_installed_or_selected_version(self) -> None:
registry = PlatformRegistry()
registry.register(ModuleManifest(
id="example",
name="Example",
version="2.1.0",
documentation=(
DocumentationTopic(
id="example.legacy",
title="Legacy",
summary="Legacy behavior",
version_max_exclusive="2.0.0",
),
DocumentationTopic(
id="example.current",
title="Current",
summary="Current behavior",
version_min="2.0.0",
),
DocumentationTopic(
id="example.universal",
title="Universal",
summary="All versions",
),
),
))
principal = FakePrincipal({"docs:documentation:read"})
installed = _classify_documentation(
registry,
principal,
settings=None,
session=None,
documentation_type="admin",
locale="en",
)
selected = _classify_documentation(
registry,
principal,
settings=None,
session=None,
documentation_type="admin",
locale="en",
target_version="1.9.0",
)
self.assertEqual(
{topic["id"] for topic in installed["configured"]},
{"example.current", "example.universal"},
)
self.assertEqual(
{topic["id"] for topic in selected["configured"]},
{"example.legacy", "example.universal"},
)
universal = next(
topic for topic in selected["configured"]
if topic["id"] == "example.universal"
)
self.assertEqual(universal["version"]["fallback"], "unversioned")
def test_docs_reader_is_the_managed_authenticated_tenant_default(self) -> None:
manifest = get_docs_manifest()
roles = {template.slug: template for template in manifest.role_templates}