def setUp(self): """To initalize marvel""" self.public = '53f6e384300d5a3010aab435f0d36342' self.private = 'b09a253cbf7c1f799a875231dfd7b11a60d48b40' self.marvel = Marvel(self.public, self.private) self.characters = self.marvel.characters_list() self.comics = self.marvel.characters_comics(1009664) self.events = self.marvel.characters_events(1009664) self.series = self.marvel.characters_series(1009664) self.stories = self.marvel.characters_stories(1009664)
class MarvelTestCase(unittest.TestCase): """Test characters part""" def setUp(self): """To initalize marvel""" self.public = '53f6e384300d5a3010aab435f0d36342' self.private = 'b09a253cbf7c1f799a875231dfd7b11a60d48b40' self.marvel = Marvel(self.public, self.private) self.characters = self.marvel.characters_list() self.comics = self.marvel.characters_comics(1009664) self.events = self.marvel.characters_events(1009664) self.series = self.marvel.characters_series(1009664) self.stories = self.marvel.characters_stories(1009664) def _count_last_page(self, object_list): count = object_list.data.total % self.marvel.limit last_page = int(object_list.data.total / self.marvel.limit) count_last_page = 10 if count == 0 else count if count != 0: last_page += 1 return last_page, count_last_page def test_limit_max(self): self.assertRaises( ValueError, Marvel, self.public, self.private, '', 200) def test_limit_type(self): marvel = Marvel(self.public, self.private, limit='42') self.assertEqual(marvel.limit, 42) self.assertRaises( ValueError, Marvel, self.public, self.private, '', 'Foo') def test_characters_list_invalid_parameters(self): self.assertRaises( InvalidParameters, lambda: self.marvel.characters_list( orderBy='foo')) self.assertRaises( InvalidParameters, lambda: self.marvel.characters_list( order_by='name')) def test_characters_list(self): all_characters_name = [ character.name for character in self.characters.data.results] self.assertEqual(len(self.characters.data.results), 10) self.assertIn(u'3-D Man', all_characters_name) self.assertNotIn(u'Professor X', self.characters) def test_characters_list_last_page(self): characters_last_page = self.marvel.characters_list( self.characters.last_page) last_page, count_last_page = self._count_last_page(self.characters) all_characters_name = [ character.name for character in characters_last_page.data.results] self.assertEqual(characters_last_page.status, u'Ok') self.assertEqual(last_page, self.characters.last_page) self.assertEqual(len(characters_last_page.data.results), count_last_page) self.assertIn(u'Zemo', all_characters_name) self.assertNotIn(u'Professor X', all_characters_name) def test_characters_list_empty_page(self): page = self.characters.data.total / self.marvel.limit + 42 self.assertRaises(EmptyPage, self.marvel.characters_list, page) def test_characters_list_order_by(self): characters = self.marvel.characters_list(orderBy='-name') all_characters_name = [ character.name for character in characters.data.results] self.assertEqual(characters.status, u'Ok') self.assertIn(u'Zemo', all_characters_name) self.assertNotIn(u'Professor X', all_characters_name) def test_characters_by_id(self): character = self.marvel.characters_detail_by_name(u'Thor') self.assertEqual(character.status, u'Ok') self.assertEqual(character.data.results.id, 1009664) self.assertTrue(character.data.results.description.startswith( u'As the Norse God of thunder and lightning')) self.assertNotEqual(character.data.results.name, u'Professor X') def test_characters_by_name(self): character = self.marvel.characters_detail_by_name(u'Thor') self.assertEqual(character.status, u'Ok') self.assertEqual(character.data.results.name, u'Thor') self.assertTrue(character.data.results.description.startswith( u'As the Norse God of thunder and lightning')) self.assertNotEqual(character.data.results.name, u'Professor X') def test_characters_comics_list(self): all_comics_title = [ comic.title for comic in self.comics.data.results] self.assertEqual(len(self.comics.data.results), 10) self.assertIn(u'Inhuman (2014) #4', all_comics_title) self.assertNotIn(u'Avengers (2010) #26', all_comics_title) def test_characters_comics_last_page(self): comics_last_page = self.marvel.characters_comics( 1009664, self.comics.last_page) title = u'Marvel Masterworks: The Mghty Thor Vol. 2 (Trade Paperback)' all_comics_title = [ comic.title for comic in comics_last_page.data.results] last_page, count_last_page = self._count_last_page(self.comics) self.assertEqual(comics_last_page.status, u'Ok') self.assertEqual(last_page, self.comics.last_page) self.assertEqual(len(comics_last_page.data.results), count_last_page) self.assertIn(title, all_comics_title) self.assertNotIn(u'Avengers (2010) #26', all_comics_title) def test_characters_comics_list_empty_page(self): page = self.comics.data.total / self.marvel.limit + 42 self.assertRaises( EmptyPage, self.marvel.characters_comics, 1009664, page) def test_characters_comics_list_order_by(self): comics = self.marvel.characters_comics(1009664, orderBy='-title') all_comics_title = [ comic.title for comic in comics.data.results] self.assertEqual(comics.status, u'Ok') self.assertIn(u'X-Men Annual (1970) #3', all_comics_title) self.assertNotIn(u'Avengers (2010) #26', all_comics_title) def test_characters_events_list(self): all_events_title = [ event.title for event in self.events.data.results] self.assertEqual(len(self.events.data.results), 10) self.assertIn(u'Avengers Disassembled', all_events_title) self.assertNotIn(u'World War Hulks', all_events_title) def test_characters_events_last_page(self): events_last_page = self.marvel.characters_events( 1009664, page=self.events.last_page) all_events_title = [ event.title for event in events_last_page.data.results] last_page, count_last_page = self._count_last_page(self.events) self.assertEqual(events_last_page.status, u'Ok') self.assertEqual(last_page, self.events.last_page) self.assertEqual(len(events_last_page.data.results), count_last_page) self.assertIn(u'World War Hulks', all_events_title) self.assertNotIn(u'Avengers Disassembled', all_events_title) def test_characters_events_list_empty_page(self): page = self.events.data.total / self.marvel.limit + 42 self.assertRaises( EmptyPage, self.marvel.characters_events, 1009664, page) def test_characters_events_list_order_by(self): events = self.marvel.characters_events(1009664, orderBy='-name') all_events_title = [ event.title for event in events.data.results] self.assertEqual(events.status, u'Ok') self.assertIn(u'World War Hulks', all_events_title) self.assertNotIn(u'Avengers Disassembled', all_events_title) def test_characters_series_list(self): all_series_title = [ serie.title for serie in self.series.data.results] self.assertEqual(len(self.series.data.results), 10) self.assertIn(u'Alpha Flight Classic Vol. 1 (2007)', all_series_title) self.assertNotIn(u'Avengers Assemble (2004)', all_series_title) def test_characters_series_last_page(self): series_last_page = self.marvel.characters_series( 1009664, self.series.last_page) all_series_title = [ serie.title for serie in series_last_page.data.results] last_page, count_last_page = self._count_last_page(self.series) self.assertEqual(series_last_page.status, u'Ok') self.assertEqual(last_page, self.series.last_page) self.assertEqual(len(series_last_page.data.results), count_last_page) self.assertIn(u'X-Treme X-Men Vol. II (1999)', all_series_title) self.assertNotIn(u'Avengers Assemble (2004)', all_series_title) def test_characters_series_list_empty_page(self): page = self.series.data.total / self.marvel.limit + 42 self.assertRaises( EmptyPage, self.marvel.characters_series, 1009664, page) def test_characters_series_list_order_by(self): series = self.marvel.characters_series(1009664, orderBy='-title') all_series_title = [ serie.title for serie in series.data.results] self.assertEqual(series.status, u'Ok') self.assertIn(u'X-Men Annual (1970 - 1991)', all_series_title) self.assertNotIn(u'Avengers Assemble (2004)', all_series_title) def test_characters_stories_list(self): all_stories_title = [ story.title for story in self.stories.data.results] self.assertEqual(len(self.stories.data.results), 10) self.assertIn(u'Interior #879', all_stories_title) self.assertNotIn(u'Interior #975', all_stories_title) def test_characters_stories_last_page(self): stories_last_page = self.marvel.characters_stories( 1009664, self.stories.last_page) all_stories_title = [ story.title for story in stories_last_page.data.results] last_page, count_last_page = self._count_last_page(self.stories) self.assertEqual(stories_last_page.status, u'Ok') self.assertEqual(last_page, self.stories.last_page) self.assertEqual(len(stories_last_page.data.results), count_last_page) self.assertIn(u'cover to Avengers VS Infinite #1', all_stories_title) self.assertNotIn(u'Interior #975', all_stories_title) def test_characters_stories_list_empty_page(self): page = self.stories.data.total / self.marvel.limit + 42 self.assertRaises( EmptyPage, self.marvel.characters_stories, 1009664, page) def test_characters_stories_list_order_by(self): stories = self.marvel.characters_stories(1009664, orderBy='-id') all_stories_title = [ story.title for story in stories.data.results] self.assertEqual(stories.status, u'Ok') self.assertIn(u'Cover #97040', all_stories_title) self.assertNotIn(u'Interior #975', all_stories_title)