|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- # -*- coding: utf-8 -*-
-
- import unittest
-
- from validate.links import find_links_in_text
- from validate.links import get_host_from_link
-
-
- 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)
-
- def test_get_host_from_link(self):
- links = [
- 'example.com',
- 'https://example.com',
- 'https://www.example.com',
- 'https://www.example.com.br',
- 'https://www.example.com/route',
- 'https://www.example.com?p=1&q=2',
- 'https://www.example.com#anchor'
- ]
-
- for link in links:
- host = get_host_from_link(link)
-
- with self.subTest():
- self.assertIsInstance(host, str)
-
- self.assertNotIn('://', host)
- self.assertNotIn('/', host)
- self.assertNotIn('?', host)
- self.assertNotIn('#', host)
-
- with self.assertRaises(TypeError):
- get_host_from_link()
|