"""Tests for turnstone.core.web_helpers — version_html() cache-busting."""
from __future__ import annotations
class TestVersionHtml:
def test_app_css_gets_version(self):
from turnstone.core.web_helpers import version_html
html = ''
result = version_html(html)
assert "?v=" in result
assert "/shared/base.css?v=" in result
def test_app_js_gets_version(self):
from turnstone.core.web_helpers import version_html
html = ''
result = version_html(html)
assert "/static/app.js?v=" in result
def test_shared_js_gets_version(self):
from turnstone.core.web_helpers import version_html
html = ''
result = version_html(html)
assert "/shared/utils.js?v=" in result
def test_vendored_katex_skipped(self):
from turnstone.core.web_helpers import version_html
html = ''
result = version_html(html)
assert result == html # unchanged
def test_vendored_hljs_skipped(self):
from turnstone.core.web_helpers import version_html
html = ''
result = version_html(html)
assert result == html # unchanged
def test_vendored_mermaid_skipped(self):
from turnstone.core.web_helpers import version_html
html = ''
result = version_html(html)
assert result == html # unchanged
def test_vendored_hls_skipped(self):
from turnstone.core.web_helpers import version_html
html = ''
result = version_html(html)
assert result == html # unchanged
def test_external_urls_not_modified(self):
from turnstone.core.web_helpers import version_html
html = (
''
)
result = version_html(html)
assert result == html # unchanged
def test_docs_link_not_modified(self):
from turnstone.core.web_helpers import version_html
html = 'docs'
result = version_html(html)
assert result == html # unchanged
def test_multiple_tags(self):
from turnstone import __version__
from turnstone.core.web_helpers import version_html
html = (
'\n'
'\n'
'\n'
'\n'
'\n'
''
)
result = version_html(html)
assert f'/shared/base.css?v={__version__}"' in result
assert f'/static/style.css?v={__version__}"' in result
assert f'/shared/utils.js?v={__version__}"' in result
assert f'/static/app.js?v={__version__}"' in result
# Vendored libs unchanged
assert '/shared/katex-0.17.0/katex.min.css"' in result
assert '/shared/hljs-11.11.1/highlight.min.js"' in result
def test_version_matches_package(self):
from turnstone import __version__
from turnstone.core.web_helpers import version_html
html = ''
result = version_html(html)
assert f"?v={__version__}" in result
def test_double_apply_is_idempotent(self):
from turnstone.core.web_helpers import version_html
html = ''
once = version_html(html)
twice = version_html(once)
assert once == twice
assert twice.count("?v=") == 1
def test_existing_query_string_preserved(self):
from turnstone.core.web_helpers import version_html
html = ''
result = version_html(html)
assert result == html # unchanged — already has query string