From 1dd1f7f3305a2d202a45182c7672d722f04833ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?1NFER=20=C2=B7=20Crypto=20AI=20Inference?= Date: Sat, 10 Oct 2026 15:33:38 -0400 Subject: [PATCH] Add offline regression coverage for validate_docs --- tests/test_validate_docs.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/test_validate_docs.py b/tests/test_validate_docs.py index 807670b..329fa47 100644 --- a/tests/test_validate_docs.py +++ b/tests/test_validate_docs.py @@ -80,5 +80,24 @@ def test_allows_confirmed_decorative_image(self) -> None: self.assertEqual(errors, []) +class IsExternalTests(unittest.TestCase): + def test_recognizes_supported_schemes_case_insensitively(self) -> None: + for target in ("HTTP://example.test", "MailTo:team@example.test", "DATA:text/plain,ok"): + with self.subTest(target=target): + self.assertTrue(validate_docs.is_external(target)) + + def test_rejects_empty_unicode_and_nearby_non_external_targets(self) -> None: + for target in ("", " https://example.test", "https:", "ftp://example.test", "https://example.test"): + with self.subTest(target=target): + self.assertFalse(validate_docs.is_external(target)) + + def test_non_string_targets_raise_type_specific_errors(self) -> None: + cases = ((None, AttributeError), (b"https://example.test", TypeError)) + for target, error in cases: + with self.subTest(target=target): + with self.assertRaises(error): + validate_docs.is_external(target) # type: ignore[arg-type] + + if __name__ == "__main__": unittest.main()