mirror of
https://github.com/public-apis/public-apis
synced 2025-03-21 02:44:23 +01:00
45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import unittest
|
|
|
|
from validate.links import find_links_in_text
|
|
|
|
|
|
class TestValidateLinks(unittest.TestCase):
|
|
|
|
def test_find_link_in_text(self):
|
|
text = """
|
|
# this is valid
|
|
|
|
http://example.com?param1=1¶m2=2#anchor
|
|
https://www.example.com?param1=1¶m2=2#anchor
|
|
https://www.example.com.br
|
|
https://www.example.com.gov.br
|
|
[Example](https://www.example.com?param1=1¶m2=2#anchor)
|
|
lorem ipsum https://www.example.com?param1=1¶m2=2#anchor
|
|
https://www.example.com?param1=1¶m2=2#anchor lorem ipsum
|
|
|
|
# this not is valid
|
|
|
|
example.com
|
|
https:example.com
|
|
https:/example.com
|
|
https//example.com
|
|
https//.com
|
|
"""
|
|
|
|
links = find_links_in_text(text)
|
|
|
|
self.assertIsInstance(links, list)
|
|
self.assertEqual(len(links), 7)
|
|
|
|
for link in links:
|
|
with self.subTest():
|
|
self.assertIsInstance(link, str)
|
|
|
|
def test_find_link_in_text_with_invalid_argument(self):
|
|
with self.assertRaises(TypeError):
|
|
find_links_in_text()
|
|
find_links_in_text(1)
|
|
find_links_in_text(True)
|