<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">import pytest
from unittest.mock import patch
from bs4.builder import DetectsXMLParsedAsHTML

class TestDetectsXMLParsedAsHTML(object):

    @pytest.mark.parametrize(
        "markup,looks_like_xml",
        [("No xml declaration", False),
         ("&lt;html&gt;obviously HTML&lt;/html", False),
         ("&lt;?xml &gt;&lt;html&gt;Actually XHTML&lt;/html&gt;", False),
         ("&lt;?xml&gt;            &lt;    html&gt;Tricky XHTML&lt;/html&gt;", False),
         ("&lt;?xml &gt;&lt;no-html-tag&gt;", True),
        ]
    )
    def test_warn_if_markup_looks_like_xml(self, markup, looks_like_xml):
        # Test of our ability to guess at whether markup looks XML-ish
        # _and_ not HTML-ish.
        with patch('bs4.builder.DetectsXMLParsedAsHTML._warn') as mock:
            for data in markup, markup.encode('utf8'):
                result = DetectsXMLParsedAsHTML.warn_if_markup_looks_like_xml(
                    data
                )
                assert result == looks_like_xml
                if looks_like_xml:
                    assert mock.called
                else:
                    assert not mock.called
                mock.reset_mock()
</pre></body></html>