def test_remove_before_with_show(self): show1 = self.db.add_show(Show(u"some show", url=u"a")) show2 = self.db.add_show(Show(u"some other show", url=u"b")) today = date.today() yesterday = today - timedelta(1) episode1 = Episode(u"episode1", 1, 1, yesterday, u"x", 1) episode2 = Episode(u"episode1", 1, 2, yesterday, u"x", 1) episode3 = Episode(u"episode1", 1, 2, yesterday, u"x", 1) self.db.add_episode(episode1, show1) self.db.add_episode(episode2, show1) self.db.add_episode(episode3, show2) self.db.commit() episodes = self.db.get_episodes(basedate = yesterday, n_days=10) self.assertIn(episode1, episodes) self.assertIn(episode2, episodes) self.assertIn(episode3, episodes) self.db.remove_before(today, show=show1) episodes = self.db.get_episodes(basedate = yesterday, n_days=10) self.assertNotIn(episode1, episodes) self.assertNotIn(episode2, episodes) self.assertIn(episode3, episodes)
def test_remove_episodes_before(self): now = date.today() then = now - timedelta(3) show2 = Show(u"B", url=u"b") show2 = self.db.add_show(show2) episode1 = Episode(u"e", 1, 1, now, u"x", 1) episode2 = Episode(u"e", 1, 2, then, u"x", 1) episode3 = Episode(u"e", 1, 3, now, u"x", 1) episode4 = Episode(u"e", 1, 4, then, u"x", 1) self.db.add_episode(episode1, self.show) self.db.add_episode(episode2, self.show) self.db.add_episode(episode3, show2) self.db.add_episode(episode4, show2) episodes = self.db.get_episodes(basedate=then, n_days=10) self.assertEqual(4, len(episodes)) show2.remove_episodes_before(self.db, now) episodes = self.db.get_episodes(basedate=then, n_days=10) self.assertEqual(3, len(episodes)) self.show.remove_episodes_before(self.db, now) episodes = self.db.get_episodes(basedate=then, n_days=10) self.assertEqual(2, len(episodes))
def test_remove_show(self): show1 = self.db.add_show(Show(u"random show", url=u"z")) show2 = self.db.add_show(Show(u"other show", url=u"x")) self.db.commit() now = date.today() episode1 = Episode(u"first", 1, 1, now, u"x", 1) episode2 = Episode(u"second",1, 2, now, u"x", 1) episode3 = Episode(u"first", 1, 1, now, u"x", 1) self.db.add_episode(episode1, show1) self.db.add_episode(episode2, show1) self.db.add_episode(episode3, show2) self.db.commit() episodes = self.db.get_episodes() self.assertEqual(3, len(episodes)) self.db.remove_show(show1.id) self.db.commit() episodes = self.db.get_episodes() self.assertEqual(1, len(episodes)) self.assertIn(episode3, episodes)
def test_remove_episodes_before(self): now = date.today() then = now - timedelta(3) show2 = Show(u"B", url=u"b") show2 = self.db.add_show(show2) episode1 = Episode(u"e", 1, 1, now, u"x", 1) episode2 = Episode(u"e", 1, 2, then, u"x", 1) episode3 = Episode(u"e", 1, 3, now, u"x", 1) episode4 = Episode(u"e", 1, 4, then, u"x", 1) self.db.add_episode(episode1, self.show) self.db.add_episode(episode2, self.show) self.db.add_episode(episode3, show2) self.db.add_episode(episode4, show2) episodes = self.db.get_episodes(basedate = then, n_days=10) self.assertEqual(4, len(episodes)) show2.remove_episodes_before(self.db, now) episodes = self.db.get_episodes(basedate = then, n_days=10) self.assertEqual(3, len(episodes)) self.show.remove_episodes_before(self.db, now) episodes = self.db.get_episodes(basedate = then, n_days=10) self.assertEqual(2, len(episodes))
def test_add_show(self): show = self.db.add_show(Show(u"test show", url=u"http://test2")) self.assertTrue(show.id > 0) shows = self.db.get_shows() self.assertEqual(1, len(shows)) self.assertIn(show, shows) self.db.commit() show2 = self.db.add_show(Show(u"moo show", url=u"http://test")) self.assertTrue(show2.id > 0) self.assertNotEqual(show.id, show2.id) self.db.commit() shows = self.db.get_shows() self.assertEqual(2, len(shows)) self.assertIn(show, shows) self.assertIn(show2, shows) self.db.add_show(Show(u"showA", url=u"urlA")) self.assertEqual(3, len(self.db.get_shows())) self.db.commit() self.db.add_show(Show(u"showA", url=u"urlB")) self.assertEqual(4, len(self.db.get_shows())) self.db.commit() with self.assertRaises(Exception): self.db.add_show(Show(u"showB", url=u"urlB")) self.db.commit() self.db.rollback() self.assertEqual(4, len(self.db.get_shows()))
class ShowTest(TestCase): def setUp(self): self.path = mktemp() self.db = Database(self.path) self.show = Show(u"A", url=u"a") self.show = self.db.add_show(self.show) def tearDown(self): unlink(self.path) def test_str_and_repr(self): self.assertEqual(str(self.show), "Show: A") self.assertEqual(repr(self.show), 'Show(u"A", u"a")') def test_equality(self): show = Show(u"A", url=u"b") self.assertNotEqual(show, self.show) show = Show(u"B", url=u"a") self.assertNotEqual(show, self.show) show = Show(u"A", url=u"a") self.assertEqual(show, self.show) def test_remove_episodes_before(self): now = date.today() then = now - timedelta(3) show2 = Show(u"B", url=u"b") show2 = self.db.add_show(show2) episode1 = Episode(u"e", 1, 1, now, u"x", 1) episode2 = Episode(u"e", 1, 2, then, u"x", 1) episode3 = Episode(u"e", 1, 3, now, u"x", 1) episode4 = Episode(u"e", 1, 4, then, u"x", 1) self.db.add_episode(episode1, self.show) self.db.add_episode(episode2, self.show) self.db.add_episode(episode3, show2) self.db.add_episode(episode4, show2) episodes = self.db.get_episodes(basedate = then, n_days=10) self.assertEqual(4, len(episodes)) show2.remove_episodes_before(self.db, now) episodes = self.db.get_episodes(basedate = then, n_days=10) self.assertEqual(3, len(episodes)) self.show.remove_episodes_before(self.db, now) episodes = self.db.get_episodes(basedate = then, n_days=10) self.assertEqual(2, len(episodes))
def test_get_show_by_id(self): show1 = self.db.add_show(Show(u"test show", url=u"a")) show2 = self.db.add_show(Show(u"test show 2", url=u"b")) self.assertEqual(show1, self.db.get_show_by_id(show1.id)) self.assertEqual(show2, self.db.get_show_by_id(show2.id)) self.assertEqual(None, self.db.get_show_by_id(99999))
class ShowTest(TestCase): def setUp(self): self.path = mktemp() self.db = Database(self.path) self.show = Show(u"A", url=u"a") self.show = self.db.add_show(self.show) def tearDown(self): unlink(self.path) def test_str_and_repr(self): self.assertEqual(str(self.show), "Show: A") self.assertEqual(repr(self.show), 'Show(u"A", u"a")') def test_equality(self): show = Show(u"A", url=u"b") self.assertNotEqual(show, self.show) show = Show(u"B", url=u"a") self.assertNotEqual(show, self.show) show = Show(u"A", url=u"a") self.assertEqual(show, self.show) def test_remove_episodes_before(self): now = date.today() then = now - timedelta(3) show2 = Show(u"B", url=u"b") show2 = self.db.add_show(show2) episode1 = Episode(u"e", 1, 1, now, u"x", 1) episode2 = Episode(u"e", 1, 2, then, u"x", 1) episode3 = Episode(u"e", 1, 3, now, u"x", 1) episode4 = Episode(u"e", 1, 4, then, u"x", 1) self.db.add_episode(episode1, self.show) self.db.add_episode(episode2, self.show) self.db.add_episode(episode3, show2) self.db.add_episode(episode4, show2) episodes = self.db.get_episodes(basedate=then, n_days=10) self.assertEqual(4, len(episodes)) show2.remove_episodes_before(self.db, now) episodes = self.db.get_episodes(basedate=then, n_days=10) self.assertEqual(3, len(episodes)) self.show.remove_episodes_before(self.db, now) episodes = self.db.get_episodes(basedate=then, n_days=10) self.assertEqual(2, len(episodes))
def test_equality(self): show = Show(u"A", url=u"b") self.assertNotEqual(show, self.show) show = Show(u"B", url=u"a") self.assertNotEqual(show, self.show) show = Show(u"A", url=u"a") self.assertEqual(show, self.show)
def test_get_enabled_shows(self): show1 = self.db.add_show(Show(u"1", url=u"1")) show1.enabled = False show2 = self.db.add_show(Show(u"2", url=u"2")) self.db.commit() shows = self.db.get_enabled_shows() self.assertNotIn(show1, shows) self.assertIn(show2, shows)
def test_parse(self): url = u"http://epguides.com/lost" show = self.db.add_show(Show(u"none", url=url)) self.parser.parse(show, self.db, self.args) timediff = datetime.now() - show.updated self.assertTrue(timediff.total_seconds() < 1) self.assertEqual("Lost", show.name) self.assertEqual(Show.ENDED, show.status) episodes = self.db.get_episodes(date(1996, 1, 1), 99999) self.assertEqual(121, len(episodes)) ep = episodes[0] self.assertEqual("Pilot (1)", ep.title) self.assertEqual(1, ep.season) self.assertEqual(1, ep.episode) self.assertEqual(date(2004, 9, 22), ep.airdate) ep = episodes[9] self.assertEqual("Raised by Another", ep.title) self.assertEqual(1, ep.season) self.assertEqual(10, ep.episode) self.assertEqual(date(2004, 12, 1), ep.airdate) ep = episodes[25] self.assertEqual("Man of Science, Man of Faith", ep.title) self.assertEqual(2, ep.season) self.assertEqual(1, ep.episode) self.assertEqual(date(2005, 9, 21), ep.airdate) self.db.clear() url = u"http://epguides.com/bsg" show = self.db.add_show(Show(u"none", url=url)) self.parser.parse(show, self.db, self.args) self.assertEqual("Battlestar Galactica (2003)", show.name) self.assertEqual(Show.ENDED, show.status) episodes = self.db.get_episodes(date(1996, 1, 1), 99999) self.assertEqual(73, len(episodes)) ep = episodes[0] self.assertEqual("33", ep.title) self.assertEqual(1, ep.season) self.assertEqual(1, ep.episode) self.assertEqual(date(2005, 1, 14), ep.airdate)
def test_clear(self): today = date.today() show = self.db.add_show(Show(u"some show", url=u"urlX")) self.assertEqual(0, len(self.db.get_episodes())) episode1 = Episode(u"e", 1, 1, today, u"x", 1) episode2 = Episode(u"e", 1, 2, today, u"x", 1) episode3 = Episode(u"e", 1, 3, today, u"x", 1) episode4 = Episode(u"e", 1, 3, today, u"x", 1) episode5 = Episode(u"e", 1, 4, today, u"x", 1) self.db.add_episode(episode1, show) self.db.add_episode(episode2, show) self.db.add_episode(episode3, show) self.db.commit() episodes = self.db.get_episodes() self.assertEqual(3, len(episodes)) self.assertIn(episode1, episodes) self.assertIn(episode2, episodes) self.assertIn(episode3, episodes) self.db.clear() self.assertEqual(0, len(self.db.get_episodes())) self.db.add_episode(episode4, show) self.db.add_episode(episode5, show) self.db.commit() episodes = self.db.get_episodes() self.assertEqual(2, len(episodes)) self.assertIn(episode4, episodes) self.assertIn(episode5, episodes)
def test_search(self): show = self.db.add_show(Show(u"some show")) ep1 = Episode(u"first episode", 3, 10, date.today(), u"FOO", 30) ep2 = Episode(u"Second episode", 3, 12, date.today(), u"FOO", 32) self.db.add_episode(ep1, show) self.db.add_episode(ep2, show) self.db.commit() episodes = self.db.search(u"first") self.assertIn(ep1, episodes) self.assertNotIn(ep2, episodes) episodes = self.db.search(u"second") self.assertNotIn(ep1, episodes) self.assertIn(ep2, episodes) episodes = self.db.search(u"episode") self.assertIn(ep1, episodes) self.assertIn(ep2, episodes) episodes = self.db.search(u"some show") self.assertIn(ep1, episodes) self.assertIn(ep2, episodes)
def test_parse_paginated(self): show = self.db.add_show(Show(u"unnamed show", url=u"261")) self.tvdb.login(self.args) self.tvdb.parse(show, self.db, self.args) self.assertEqual(show.status, Show.ENDED) episodes = self.db.get_episodes(date(1988, 1, 1), 99999) self.assertEqual(len(episodes), 8) episode = episodes[0] self.assertEqual(episode.title, "First") episode = episodes[1] self.assertEqual(episode.title, "Second") episode = episodes[2] self.assertEqual(episode.title, "Third") episode = episodes[3] self.assertEqual(episode.title, "Fourth") episode = episodes[4] self.assertEqual(episode.title, "Fifth") episode = episodes[5] self.assertEqual(episode.title, "Sixth") episode = episodes[6] self.assertEqual(episode.title, "Seventh") episode = episodes[7] self.assertEqual(episode.title, "Eighth")
def test_send_mail_tls(self): show1 = Show(u"Columbo", u"") ep1 = Episode(u"Episode 1", 1, 1, date(2014, 8, 10), u"x", 1) ep2 = Episode(u"Episode 2", 1, 2, date(2014, 12, 1), u"x", 2) ep1.show = show1 ep2.show = show1 message = NewEpisodesNotification([ep1, ep2], "[%airdate] %show %seasonx%epnum - %eptitle","%Y-%m-%d") notifier = EmailNotifier("localhost", 97, MockSMTP) notifier.use_tls = True message.send(notifier, "*****@*****.**") self.assertEqual(self.smtp.count, 1) self.assertEqual(self.smtp.tls, 1) self.assertEqual(self.smtp.user, None) self.assertEqual(self.smtp.password, None) self.assertEqual(self.smtp.from_addr, "*****@*****.**") self.assertEqual(self.smtp.to_addr, "*****@*****.**") self.assertEqual(self.smtp.msg, "From: [email protected]\n" "To: [email protected]\n" "Subject: Upcoming TV episodes\n" "Your upcoming episodes:\n\n" "[2014-08-10] Columbo 1x01 - Episode 1\n" "[2014-12-01] Columbo 1x02 - Episode 2\n")
def test_format_2(self): # Another format url = u"http://epguides.com/eureka" show = self.db.add_show(Show(u"none", url=url)) self.parser.parse(show, self.db, self.args) self.assertEqual("Eureka", show.name) self.assertEqual(Show.ENDED, show.status) episodes = self.db.get_episodes(date(1988, 1, 1), 99999) self.assertEqual(76, len(episodes)) ep = episodes[0] self.assertEqual("Pilot", ep.title) self.assertEqual(1, ep.season) self.assertEqual(1, ep.episode) self.assertEqual(date(2006, 7, 18), ep.airdate) ep = episodes[9] self.assertEqual("Purple Haze", ep.title) self.assertEqual(1, ep.season) self.assertEqual(10, ep.episode) self.assertEqual(date(2006, 9, 19), ep.airdate) ep = episodes[27] self.assertEqual("Best in Faux", ep.title) self.assertEqual(3, ep.season) self.assertEqual(3, ep.episode) self.assertEqual(date(2008, 8, 12), ep.airdate)
def test_user_agent(self): show = self.db.add_show(Show(u"unnamed show", url=u"262")) self.tvdb.login(self.args) self.tvdb.lookup("Frasier", self.args) self.tvdb.parse(show, self.db, self.args) self.assertEqual(len(self.req.requests), 4) req = self.req.requests[0] headers = req.headers self.assertEqual(headers.get("User-Agent"), "episoder/test") req = self.req.requests[1] headers = req.headers self.assertEqual(headers.get("User-Agent"), "episoder/test") req = self.req.requests[2] headers = req.headers self.assertEqual(headers.get("User-Agent"), "episoder/test") req = self.req.requests[3] headers = req.headers self.assertEqual(headers.get("User-Agent"), "episoder/test")
def test_send_mail_pretend(self): show1 = Show(u"Columbo", u"") ep1 = Episode(u"Episode 1", 1, 1, date(2014, 8, 10), u"x", 1) ep2 = Episode(u"Episode 2", 1, 2, date(2014, 12, 1), u"x", 2) ep1.show = show1 ep2.show = show1 stdout = sys.stdout sys.stdout = StringIO() message = NewEpisodesNotification([ep1, ep2], "[%airdate] %show %seasonx%epnum - %eptitle","%Y-%m-%d") notifier = EmailNotifier("localhost", 97, MockSMTP) message.send(notifier, "*****@*****.**", pretend=True) self.assertEqual(self.smtp.count, 0) output = sys.stdout.getvalue() sys.stdout = stdout # StringIO adds an extra \n self.assertEqual(output, "From: [email protected]\n" "To: [email protected]\n" "Subject: Upcoming TV episodes\n" "Your upcoming episodes:\n\n" "[2014-08-10] Columbo 1x01 - Episode 1\n" "[2014-12-01] Columbo 1x02 - Episode 2\n\n")
def test_remove_before(self): show = self.db.add_show(Show(u"some show")) today = date.today() yesterday = today - timedelta(1) before = yesterday - timedelta(1) tomorrow = today + timedelta(1) episode1 = Episode(u"episode1", 1, 1, before, u"x", 1) episode2 = Episode(u"episode2", 1, 2, yesterday, u"x", 2) episode3 = Episode(u"episode3", 1, 3, today, u"x", 3) episode4 = Episode(u"episode4", 1, 4, tomorrow, u"x", 4) self.db.add_episode(episode1, show) self.db.add_episode(episode2, show) self.db.add_episode(episode3, show) self.db.add_episode(episode4, show) self.db.commit() episodes = self.db.get_episodes(basedate = before, n_days=10) self.assertIn(episode1, episodes) self.assertIn(episode2, episodes) self.assertIn(episode3, episodes) self.assertIn(episode4, episodes) self.db.remove_before(today) episodes = self.db.get_episodes(basedate = before, n_days=10) self.assertNotIn(episode1, episodes) self.assertNotIn(episode2, episodes) self.assertIn(episode3, episodes) self.assertIn(episode4, episodes)
def test_parse(self): show = self.db.add_show(Show(u"unnamed show", url=u"260")) self.assertTrue(TVDB.accept(show.url)) with self.assertRaises(TVDBNotLoggedInError): self.tvdb.parse(show, None, self.args) self.tvdb.login(self.args) self.tvdb.parse(show, self.db, self.args) req = self.req.requests[-2] self.assertEqual(req.url, "https://api.thetvdb.com/series/260") self.assertEqual(req.params, {}) self.assertEqual(req.method, "GET") self.assertEqual(req.body, "") content_type = req.headers.get("Content-type") self.assertEqual(content_type, "application/json") auth = req.headers.get("Authorization") self.assertEqual(auth, "Bearer fake-token") req = self.req.requests[-1] self.assertEqual(req.url, "https://api.thetvdb.com/series/260/episodes") self.assertEqual(req.params, {"page": 1}) self.assertEqual(req.method, "GET") self.assertEqual(req.body, "") content_type = req.headers.get("Content-type") self.assertEqual(content_type, "application/json") auth = req.headers.get("Authorization") self.assertEqual(auth, "Bearer fake-token") self.assertEqual(show.name, "test show") self.assertEqual(show.status, Show.RUNNING) timediff = datetime.now() - show.updated self.assertTrue(timediff.total_seconds() < 1) episodes = self.db.get_episodes(date(1988, 1, 1), 99999) self.assertEqual(len(episodes), 2) episode = episodes[0] self.assertEqual(episode.title, "Unnamed episode") self.assertEqual(episode.season, 0) self.assertEqual(episode.episode, 0) self.assertEqual(episode.airdate, date(1990, 1, 18)) self.assertEqual(episode.prodnum, "UNK") self.assertEqual(episode.totalnum, 1) episode = episodes[1] self.assertEqual(episode.title, "The Good Son") self.assertEqual(episode.season, 1) self.assertEqual(episode.episode, 1) self.assertEqual(episode.airdate, date(1993, 9, 16)) self.assertEqual(episode.totalnum, 2)
def test_parse_show_with_invalid_data(self): self.tvdb.login(self.args) show = self.db.add_show(Show(u"unnamed show", url=u"262")) self.tvdb.parse(show, self.db, self.args) episodes = self.db.get_episodes(date(1988, 1, 1), 99999) self.assertEqual(len(episodes), 2)
def test_parse_invalid_show(self): self.tvdb.login(self.args) show = self.db.add_show(Show(u"test show", url=u"293")) with self.assertRaises(TVDBShowNotFoundError): self.tvdb.parse(show, None, self.args)
def test_null_values(self): self.tvdb.login(self.args) show = self.db.add_show(Show(u"unnamed show", url=u"268156")) self.assertTrue(TVDB.accept(show.url)) # this show has some null values that can confuse the parser self.tvdb.parse(show, self.db, self.args) self.assertEqual("Sense8", show.name)
def setUp(self): self.show = Show(u"Test show 36") self.show.show_id = 36 self.io = StringIO() then = date(2008, 1, 1) self.episode = Episode(u"Episode 41", 2, 5, then, u"NX01", 3) self.episode.show = self.show
def test_str_and_repr(self): show = Show(u"TvShow", u"") ep = Episode(u"First", 1, 1, date(2017, 1, 1), u"http://", 1) ep.show = show self.assertEqual(str(ep), "TvShow 1x01: First") self.assertEqual( repr(ep), 'Episode(u"First", 1, 1, ' 'date(2017, 1, 1), u"http://", 1)')
def setUp(self): self.show = Show(u"Test show 36") self.show.show_id = 36 then = date(2008, 1, 1) self.episode = Episode(u"Episode 41", 2, 5, then, u"NX01", 3) self.episode.show = self.show self.smtp = MockSMTP(None, None) self.smtp.reset()
def test_http_request(self): url = u"http://epguides.com/lost" show = self.db.add_show(Show(u"none", url=url)) self.parser.parse(show, self.db, self.args) self.assertTrue(len(self.req.requests) > 0) req = self.req.requests[-1] self.assertEqual(req.url, u"http://epguides.com/lost") headers = req.headers self.assertIn("User-Agent", headers) self.assertEqual(headers.get("User-Agent"), "episoder/fake")
def test_encoding_iso8859_1(self): # Explicitly test ISO 8859-1 encoding url = u"http://epguides.com/test_iso_8859_1" show = self.db.add_show(Show(u"none", url=url)) self.parser.parse(show, self.db, self.args) self.assertEqual(u"Episoder ISO-8859-1 Tëst", show.name) episodes = self.db.get_episodes(date(1996, 1, 1), 99999) self.assertEqual(len(episodes), 1) episode = episodes[0] self.assertEqual(u"äöü", episode.title)
def test_add_episode(self): show = Show(u"some show", url=u"foo") show = self.db.add_show(show) self.db.commit() ep1 = Episode(u"Some episode", 3, 10, date.today(), u"FOO", 30) ep2 = Episode(u"No episode", 3, 12, date.today(), u"FOO", 32) self.db.add_episode(ep1, show) self.db.add_episode(ep2, show) self.db.commit() episodes = self.db.get_episodes() self.assertTrue(ep1 in episodes) self.assertTrue(ep2 in episodes)
def test_fancy_utf8_chars(self): # This one contains an illegal character somewhere url = u"http://epguides.com/american_idol" show = self.db.add_show(Show(u"none", url=url)) self.parser.parse(show, self.db, self.args) self.assertEqual("American Idol", show.name) self.assertEqual(Show.RUNNING, show.status) episodes = self.db.get_episodes(date(1988, 1, 1), 99999) self.assertTrue(len(episodes) >= 11) episode = episodes[11] self.assertEqual(u"Pride Goeth Before The ‘Fro", episode.title) self.assertEqual(1, episode.season) self.assertEqual(12, episode.episode)
def test_rollback(self): show = Show(u"some show") show = self.db.add_show(show) self.db.commit() ep1 = Episode(u"first", 3, 10, date.today(), u"FOO", 30) self.db.add_episode(ep1, show) self.db.rollback() ep2 = Episode(u"Second", 3, 12, date.today(), u"FOO", 32) self.db.add_episode(ep2, show) self.db.commit() episodes = self.db.get_episodes() self.assertFalse(ep1 in episodes) self.assertTrue(ep2 in episodes)
def test_encoding_utf8(self): self.tvdb.login(self.args) show = self.db.add_show(Show(u"unnamed show", url=u"73739")) self.assertTrue(TVDB.accept(show.url)) self.tvdb.parse(show, self.db, self.args) self.assertEqual("Lost", show.name) self.assertEqual(Show.ENDED, show.status) episodes = self.db.get_episodes(date(1988, 1, 1), 99999) self.assertEqual(len(episodes), 1) episode = episodes[0] self.assertEqual(episode.title, u"Exposé")
def setUp(self): self.path = mktemp() self.db = Database(self.path) self.show = Show(u"A", url=u"a") self.show = self.db.add_show(self.show)