import json import unittest import requests import validators class DomainsTests(unittest.TestCase): def test_json_is_valid(self): with open("../world_universities_and_domains.json", encoding='utf-8') as json_file: valid_json = json.load(json_file) for university in valid_json: self.assertIn("name", university) self.assertIn("domains", university) self.assertIsInstance(university["domains"], list) for domain in university["domains"]: self.assertTrue(validators.domain(domain)) self.assertIn("web_pages", university) self.assertIn("alpha_two_code", university) self.assertIn("state-province", university) self.assertIn("country", university) def check_is_alive(): """ check url then if url isn't alive, add to file """ with open('../world_universities_and_domains.json', encoding='utf-8') as json_raw: universities = json.load(json_raw) for university in universities[:]: try: for web_page in university["web_pages"]: print(web_page) requests.get(web_page, allow_redirects=False, timeout=10.0) except requests.exceptions.ConnectionError as exc: print('- Website doesn\'t exists: ', exc) if __name__ == '__main__': unittest.main(verbosity=2)