"""Tests for the --link-css and --embed-css options in generate_website.py"""
import sys
import pytest
import generate_website
from generate_website import STYLES, generate_builtin_css, generate_html
def _render(**kwargs) -> str:
return generate_html(
bot_name="TestBot",
title="Test Site",
introduction="Test intro",
commands=[],
monitor_channels=[],
channels_data={},
**kwargs,
)
def test_generate_builtin_css_includes_css_variables():
css = generate_builtin_css('default')
assert ':root' in css
assert '--bg-primary' in css
assert '--accent-blue' in css
assert 'body {' in css
def test_generate_builtin_css_includes_style_overrides():
css = generate_builtin_css('minimalist')
assert STYLES['minimalist']['css_overrides'].strip() in css
def test_default_output_has_no_custom_css():
html = _render(style='default')
assert 'Custom CSS overrides' not in html
stylesheets = [line for line in html.splitlines() if 'rel="stylesheet"' in line]
assert len(stylesheets) == 1
assert 'fonts.googleapis.com/css2' in stylesheets[0]
def test_backwards_compatible_call_without_css_params():
html = generate_html("TestBot", "Test Site", "Test intro", [], [], {}, 'default')
assert '') < html.index(link) < html.index('')
assert 'fonts.googleapis.com' in html
assert '--bg-primary' in html
def test_link_css_is_escaped():
html = _render(style='default', link_css='style.css?v=1&theme=dark">')
assert 'href="style.css?v=1&theme=dark"><script>' in html
assert '