def test_eps_from_html(self): eps = BangumiEpisode.eps_from_html(self._ep_html) self.assertEqual(31, len(eps)) for ep, ep_id, ep_num, ep_type in zip(eps, self._ep_ids, self._ep_nums, self._ep_types): self.assertEqual(ep_id, ep.id_) self.assertEqual(ep_num, ep.ep_num) self.assertEqual(ep_type, ep.ep_type)
def test_status(self): ep_id = "519" ep = BangumiEpisode.from_html(ep_id, self._ep_html) with self.assertRaises(ValueError): ep.status = 'invalid' self.assertEqual('air', ep.status) ep.status = 'na' self.assertEqual('na', ep.status) ep.status = 'today' self.assertEqual('today', ep.status)
def test_from_html_with_ep(self): ep_id = "519" ep = BangumiEpisode.from_html(ep_id, self._ep_html) ep_coll = BangumiEpisodeCollection.from_html_with_ep(ep, self._ep_html) self.assertEqual(self._c_statuses[0], ep_coll.c_status)
def test_subject(self): ep_id = "519" ep = BangumiEpisode.from_html(ep_id, self._ep_html) self.assertIsNone(ep.subject) with self.assertRaises(TypeError): ep.subject = ep
def test_fixed_attribute_exception(self): ep_id = "519" ep = BangumiEpisode.from_html(ep_id, self._ep_html) for key in ['id_', 'ep_num', 'ep_type', 'title', 'ch_title']: with self.assertRaises(AttributeError): setattr(ep, key, 's')
def test_from_to_json(self): eps = BangumiEpisode.eps_from_html(self._ep_html) ep_jsons = [ep.to_json() for ep in eps] eps_new = [BangumiEpisode.from_json(ep_json) for ep_json in ep_jsons] for ep, ep_new in zip(eps, eps_new): self.assertEqual(ep, ep_new)
def test_from_html(self): ep_id = "519" ep = BangumiEpisode.from_html(ep_id, self._ep_html) self.assertEqual(self._ep_ids[0], ep.id_) self.assertEqual(self._ep_nums[0], ep.ep_num) self.assertEqual(self._ep_types[0], ep.ep_type)