class MockTest(unittest.TestCase): def setUp(self): self.parser = Parser() def test_current_season(self): with HTTMock(current_season_mock): current = self.parser.current_shows self.assertEqual(list(current), ["Test 1", "Test 2", "Test 3", "Test 4"]) def test_shows_list(self): with HTTMock(shows_mock): shows = self.parser.shows self.assertEqual( shows, { 'Test 1': 'test-1', 'Test 2': 'test-2', 'Test 3': 'test-3', 'Test 4': 'test-4' }) def test_get_episodes(self): with HTTMock(api_mock): episodes = self.parser.get_episodes("test", limit=4) self.assertEqual(len(episodes), 4) batch = self.parser.get_batches("test") self.assertEqual(batch[0]["title"].lower(), "one-punch man") def test_show_id(self): with HTTMock(showid_mock): showid = self.parser._get_show_id("doesn't matter") self.assertTrue(showid, 123456789)
def test_get_episodes(): # without mocking, we'll do live testing on the website. parser = Parser() for limit in 0, 3, 12, 24, 28: title = parser.get_proper_title("one piece") showid = parser._get_show_id(title) shows_html = parser._get_html(showid, limit, "show") episodes = list(parser._parse_html(shows_html)) assert len(episodes) == 12 * round(limit / 12) proper_get_episodes = parser.get_episodes("one piece", limit=limit) for index, episode in enumerate(proper_get_episodes): episode.pop("title") proper = episode.keys() non_proper = episodes[index].keys() error_msg = f"proper: {proper} \nnon proper: {non_proper}" assert episode == episodes[index], error_msg
def test_show_id(): parser = Parser() assert parser._get_show_id("no way this will ever be an anime") == -1