# SPDX-License-Identifier: MIT # Copyright (c) 2026 Rug Munch Media LLC # # Part of Pry — https://git.rugmunch.io/RugMunchMedia/pryscraper # Licensed under MIT. See LICENSE. """Tests for SEO content monitor.""" from seo_monitor import ( _count_words, _get_headings, _get_meta_from_html, _get_title_from_html, _has_schema, ) def test_get_title_from_html() -> None: html = "My SEO Title" assert _get_title_from_html(html) == "My SEO Title" def test_get_meta_from_html() -> None: html = '' desc = _get_meta_from_html(html, "description") assert desc == "Test description here" def test_count_words() -> None: html = "

Hello world this is a test

" assert _count_words(html) == 6 def test_get_headings() -> None: from lxml import html as lxml_html tree = lxml_html.fromstring( "

Main Title

Sub One

Sub Two

" ) h1s = _get_headings(tree, "h1") assert h1s == ["Main Title"] h2s = _get_headings(tree, "h2") assert len(h2s) == 2 def test_has_schema() -> None: html = '' assert _has_schema(html) is True def test_has_no_schema() -> None: html = "

No schema here

" assert _has_schema(html) is False