"""Tests for turnstone.core.web — strip_html.""" from turnstone.core.web import strip_html class TestStripHtml: def test_removes_tags(self): assert strip_html("hello") == "hello" def test_removes_nested_tags(self): assert strip_html("

text

") == "text" def test_decodes_entities(self): assert strip_html("& < >") == "& < >" def test_collapses_whitespace(self): result = strip_html("hello world") assert result == "hello world" def test_collapses_blank_lines(self): result = strip_html("a\n\n\n\n\nb") assert result == "a\n\nb" def test_empty_string(self): assert strip_html("") == "" def test_strips_leading_trailing_whitespace(self): assert strip_html(" hello ") == "hello" def test_complex_html(self): html = "

Title

Some & text

" result = strip_html(html) assert "Title" in result assert "Some & text" in result assert "<" not in result def test_self_closing_tags(self): result = strip_html("hello
world") assert result == "helloworld" # -- invisible element stripping ----------------------------------------- def test_strips_script_content(self): html = "

before

after

" result = strip_html(html) assert "var x" not in result assert "before" in result assert "after" in result def test_strips_style_content(self): html = "

visible

" result = strip_html(html) assert "color" not in result assert "visible" in result def test_strips_template_content(self): html = "

shown

" result = strip_html(html) assert "hidden" not in result assert "shown" in result def test_strips_noscript_content(self): html = "

content

" result = strip_html(html) assert "Enable JS" not in result assert "content" in result def test_strips_multiple_script_blocks(self): html = "

middle

" result = strip_html(html) assert "a()" not in result assert "b()" not in result assert "middle" in result def test_strips_multiline_script(self): html = "

ok

" result = strip_html(html) assert "function" not in result assert "ok" in result def test_strips_script_case_insensitive(self): html = "

text

" result = strip_html(html) assert "code()" not in result assert "text" in result def test_strips_script_with_attributes(self): html = '

done

' result = strip_html(html) assert "init()" not in result assert "done" in result