def test_episode(self): obj = episode(u'a', u'b', 1, datetime(2000, 1, 1), u'c', u'd', u'e', True, 2) self.assertEqual(obj.name, u'a', 'name is assigned incorrectly') self.assertEqual(obj.description, u'b', 'description is assigned incorrectly') self.assertEqual(obj.number, 1, 'number is assigned incorrectly') self.assertEqual(obj.date, datetime(2000, 1, 1), 'date is assigned incorrectly') self.assertEqual(obj.id, u'c', 'id is assigned incorrectly') self.assertEqual(obj.showid, u'd', 'showid is assigned incorrectly') self.assertEqual(obj.seasonid, u'e', 'seasonid is assigned incorrectly') self.assertTrue(obj.watched, 'watched is assigned incorrectly') self.assertEqual(obj.data, 2, 'data is assigned incorrectly') self.assertRaises(exceptions.TypeError, episode, (1, 1, '', '', 1, 1, 1, 1, ''))
def getlocalepisodes(self, showid, seasonid): ''' @type showid: str @type seasonid: str @rtype: list ''' episodes = [] if self._storage.exists('shows/%s/en.xml' % showid): data = self._storage.getdata('shows/%s/en.xml' % showid) xml = QDomDocument() xml.setContent(data) episodelist = xml.elementsByTagName('Episode') for episodenum in range(episodelist.count()): if seasonid == unicode(QString(episodelist.at(episodenum).toElement().elementsByTagName('seasonid').at(0).childNodes().at(0).toText().data())): newepisode = episode() number = QString(episodelist.at(episodenum).toElement().elementsByTagName('EpisodeNumber').at(0).childNodes().at(0).toText().data()).toInt() if number[1]: newepisode.number = number[0] else: newepisode.number = 0 if newepisode.number > 0: newepisode.id = unicode(QString(episodelist.at(episodenum).toElement().elementsByTagName('id').at(0).childNodes().at(0).toText().data())) newepisode.name = unicode(QString(episodelist.at(episodenum).toElement().elementsByTagName('EpisodeName').at(0).childNodes().at(0).toText().data())) newepisode.description = unicode(QString(episodelist.at(episodenum).toElement().elementsByTagName('Overview').at(0).childNodes().at(0).toText().data())) datestring = unicode(QString(episodelist.at(episodenum).toElement().elementsByTagName('FirstAired').at(0).childNodes().at(0).toText().data())) if len(datestring) > 0: newepisode.date = datetime.fromtimestamp(mktime(strptime(datestring, '%Y-%m-%d'))) newepisode.showid = showid newepisode.seasonid = seasonid newepisode.watched = self.getwatched(newepisode.showid, newepisode.seasonid, newepisode.id) episodes.append(newepisode) return sorted(episodes, key = lambda item: item.number)