From f0d0def946f92a7badb0a43179a8f165217dfa5c Mon Sep 17 00:00:00 2001 From: Garrett Pennington Date: Wed, 5 Mar 2014 23:52:54 -0600 Subject: [PATCH 1/3] docs typo --- README.md | 2 +- docs/index.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 690bba4..ed76c47 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ would be the equivalent to calling: Pagination ========== - >>> xmen = m.get_single_series(403).data.results.get_characters(limit=5) + >>> xmen = m.get_single_series(403).data.result.get_characters(limit=5) >>> for xm in xmen.data.results: ... print xm.name diff --git a/docs/index.rst b/docs/index.rst index 69761b2..464773d 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -126,7 +126,7 @@ Pagination ---------- :: - >>> xmen = m.get_single_series(403).data.results.get_characters(limit=5) + >>> xmen = m.get_single_series(403).data.result.get_characters(limit=5) >>> for xm in xmen.data.results: ... print xm.name From 888f7c8f960a432a7428c3ed52308aea618bd1c5 Mon Sep 17 00:00:00 2001 From: Garrett Pennington Date: Thu, 6 Mar 2014 00:03:38 -0600 Subject: [PATCH 2/3] made some methods private --- marvel/character.py | 12 ++++++------ marvel/comic.py | 26 +++++++++++++------------- marvel/core.py | 4 ++-- marvel/creator.py | 12 ++++++------ marvel/event.py | 14 +++++++------- marvel/series.py | 14 +++++++------- marvel/story.py | 12 ++++++------ 7 files changed, 47 insertions(+), 47 deletions(-) diff --git a/marvel/character.py b/marvel/character.py index 894e5ce..43a959b 100644 --- a/marvel/character.py +++ b/marvel/character.py @@ -32,7 +32,7 @@ def previous(self): class CharacterDataContainer(DataContainer): @property def results(self): - return self.list_to_instance_list(self.dict['results'], Character) + return self._list_to_instance_list(self.dict['results'], Character) class Character(MarvelObject): @@ -131,7 +131,7 @@ def get_comics(self, *args, **kwargs): :returns: ComicDataWrapper -- A new request to API. Contains full results set. """ from .comic import Comic, ComicDataWrapper - return self.get_related_resource(Comic, ComicDataWrapper, args, kwargs) + return self._get_related_resource(Comic, ComicDataWrapper, args, kwargs) def get_events(self, *args, **kwargs): @@ -143,7 +143,7 @@ def get_events(self, *args, **kwargs): :returns: EventDataWrapper -- A new request to API. Contains full results set. """ from .event import Event, EventDataWrapper - return self.get_related_resource(Event, EventDataWrapper, args, kwargs) + return self._get_related_resource(Event, EventDataWrapper, args, kwargs) def get_series(self, *args, **kwargs): """ @@ -154,7 +154,7 @@ def get_series(self, *args, **kwargs): :returns: SeriesDataWrapper -- A new request to API. Contains full results set. """ from .series import Series, SeriesDataWrapper - return self.get_related_resource(Series, SeriesDataWrapper, args, kwargs) + return self._get_related_resource(Series, SeriesDataWrapper, args, kwargs) def get_stories(self, *args, **kwargs): """ @@ -165,7 +165,7 @@ def get_stories(self, *args, **kwargs): :returns: StoriesDataWrapper -- A new request to API. Contains full results set. """ from .story import Story, StoryDataWrapper - return self.get_related_resource(Story, StoryDataWrapper, args, kwargs) + return self._get_related_resource(Story, StoryDataWrapper, args, kwargs) class CharacterList(List): """ @@ -176,7 +176,7 @@ def items(self): """ Returns List of CharacterSummary objects """ - return self.list_to_instance_list(self.dict['items'], CharacterSummary) + return self._list_to_instance_list(self.dict['items'], CharacterSummary) class CharacterSummary(Summary): """ diff --git a/marvel/comic.py b/marvel/comic.py index 653e20e..35f0eb0 100644 --- a/marvel/comic.py +++ b/marvel/comic.py @@ -24,7 +24,7 @@ def data(self): class ComicDataContainer(DataContainer): @property def results(self): - return self.list_to_instance_list(self.dict['results'], Comic) + return self._list_to_instance_list(self.dict['results'], Comic) class Comic(MarvelObject): """ @@ -104,7 +104,7 @@ def textObjects(self): """ :returns: list -- List of TextObjects """ - return self.list_to_instance_list(self.dict['textObjects'], TextObject) + return self._list_to_instance_list(self.dict['textObjects'], TextObject) @property def resourceURI(self): @@ -123,29 +123,29 @@ def variants(self): """ Returns List of ComicSummary objects """ - return self.list_to_instance_list(self.dict['variants'], ComicSummary) + return self._list_to_instance_list(self.dict['variants'], ComicSummary) @property def collections(self): """ Returns List of ComicSummary objects """ - return self.list_to_instance_list(self.dict['collections'], ComicSummary) + return self._list_to_instance_list(self.dict['collections'], ComicSummary) @property def collectedIssues(self): """ Returns List of ComicSummary objects """ - return self.list_to_instance_list(self.dict['collectedIssues'], ComicSummary) + return self._list_to_instance_list(self.dict['collectedIssues'], ComicSummary) @property def dates(self): - return self.list_to_instance_list(self.dict['dates'], ComicDate) + return self._list_to_instance_list(self.dict['dates'], ComicDate) @property def prices(self): - return self.list_to_instance_list(self.dict['prices'], ComicPrice) + return self._list_to_instance_list(self.dict['prices'], ComicPrice) @property def thumbnail(self): @@ -153,7 +153,7 @@ def thumbnail(self): @property def images(self): - return self.list_to_instance_list(self.dict['images'], Image) + return self._list_to_instance_list(self.dict['images'], Image) @property def creators(self): @@ -185,7 +185,7 @@ def get_creators(self, *args, **kwargs): :returns: CreatorDataWrapper -- A new request to API. Contains full results set. """ from .creator import Creator, CreatorDataWrapper - return self.get_related_resource(Creator, CreatorDataWrapper, args, kwargs) + return self._get_related_resource(Creator, CreatorDataWrapper, args, kwargs) def get_characters(self, *args, **kwargs): """ @@ -196,7 +196,7 @@ def get_characters(self, *args, **kwargs): :returns: CreatorDataWrapper -- A new request to API. Contains full results set. """ from .character import Character, CharacterDataWrapper - return self.get_related_resource(Character, CharacterDataWrapper, args, kwargs) + return self._get_related_resource(Character, CharacterDataWrapper, args, kwargs) def get_events(self, *args, **kwargs): """ @@ -207,7 +207,7 @@ def get_events(self, *args, **kwargs): :returns: EventDataWrapper -- A new request to API. Contains full results set. """ from .event import Event, EventDataWrapper - return self.get_related_resource(Event, EventDataWrapper, args, kwargs) + return self._get_related_resource(Event, EventDataWrapper, args, kwargs) def get_stories(self, *args, **kwargs): """ @@ -218,7 +218,7 @@ def get_stories(self, *args, **kwargs): :returns: StoriesDataWrapper -- A new request to API. Contains full results set. """ from .story import Story, StoryDataWrapper - return self.get_related_resource(Story, StoryDataWrapper, args, kwargs) + return self._get_related_resource(Story, StoryDataWrapper, args, kwargs) class ComicList(List): @@ -231,7 +231,7 @@ def items(self): """ Returns List of ComicSummary objects """ - return self.list_to_instance_list(self.dict['items'], ComicSummary) + return self._list_to_instance_list(self.dict['items'], ComicSummary) class ComicSummary(Summary): """ diff --git a/marvel/core.py b/marvel/core.py index 7573f09..30e856d 100644 --- a/marvel/core.py +++ b/marvel/core.py @@ -36,7 +36,7 @@ def resource_url(cls): """ return cls._resource_url - def list_to_instance_list(_self, _list, _Class): + def _list_to_instance_list(_self, _list, _Class): """ Takes a list of resource dicts and returns a list of resource instances, defined by the _Class param. @@ -55,7 +55,7 @@ def list_to_instance_list(_self, _list, _Class): items.append(_Class(_self.marvel, item)) return items - def get_related_resource(_self, _Class, _ClassDataWrapper, *args, **kwargs): + def _get_related_resource(_self, _Class, _ClassDataWrapper, *args, **kwargs): """ Takes a related resource Class and returns the related resource DataWrapper. diff --git a/marvel/creator.py b/marvel/creator.py index b18b6d6..7f97638 100644 --- a/marvel/creator.py +++ b/marvel/creator.py @@ -33,7 +33,7 @@ def previous(self): class CreatorDataContainer(DataContainer): @property def results(self): - return self.list_to_instance_list(self.dict['results'], Creator) + return self._list_to_instance_list(self.dict['results'], Creator) class Creator(MarvelObject): @@ -146,7 +146,7 @@ def get_comics(self, *args, **kwargs): :returns: ComicDataWrapper -- A new request to API. Contains full results set. """ from .comic import Comic, ComicDataWrapper - return self.get_related_resource(Comic, ComicDataWrapper, args, kwargs) + return self._get_related_resource(Comic, ComicDataWrapper, args, kwargs) def get_events(self, *args, **kwargs): """ @@ -157,7 +157,7 @@ def get_events(self, *args, **kwargs): :returns: EventDataWrapper -- A new request to API. Contains full results set. """ from .event import Event, EventDataWrapper - return self.get_related_resource(Event, EventDataWrapper, args, kwargs) + return self._get_related_resource(Event, EventDataWrapper, args, kwargs) def get_series(self, *args, **kwargs): """ @@ -168,7 +168,7 @@ def get_series(self, *args, **kwargs): :returns: SeriesDataWrapper -- A new request to API. Contains full results set. """ from .series import Series, SeriesDataWrapper - return self.get_related_resource(Series, SeriesDataWrapper, args, kwargs) + return self._get_related_resource(Series, SeriesDataWrapper, args, kwargs) def get_stories(self, *args, **kwargs): """ @@ -179,7 +179,7 @@ def get_stories(self, *args, **kwargs): :returns: StoriesDataWrapper -- A new request to API. Contains full results set. """ from .story import Story, StoryDataWrapper - return self.get_related_resource(Story, StoryDataWrapper, args, kwargs) + return self._get_related_resource(Story, StoryDataWrapper, args, kwargs) class CreatorList(List): """ @@ -191,7 +191,7 @@ def items(self): """ Returns List of CreatorSummary objects """ - return self.list_to_instance_list(self.dict['items'], CreatorSummary) + return self._list_to_instance_list(self.dict['items'], CreatorSummary) class CreatorSummary(Summary): """ diff --git a/marvel/event.py b/marvel/event.py index 30ae6b1..da4b805 100644 --- a/marvel/event.py +++ b/marvel/event.py @@ -13,7 +13,7 @@ def data(self): class EventDataContainer(DataContainer): @property def results(self): - return self.list_to_instance_list(self.dict['results'], Event) + return self._list_to_instance_list(self.dict['results'], Event) class Event(MarvelObject): """ @@ -125,7 +125,7 @@ def get_creators(self, *args, **kwargs): :returns: CreatorDataWrapper -- A new request to API. Contains full results set. """ from .creator import Creator, CreatorDataWrapper - return self.get_related_resource(Creator, CreatorDataWrapper, args, kwargs) + return self._get_related_resource(Creator, CreatorDataWrapper, args, kwargs) def get_characters(self, *args, **kwargs): """ @@ -136,7 +136,7 @@ def get_characters(self, *args, **kwargs): :returns: CreatorDataWrapper -- A new request to API. Contains full results set. """ from .character import Character, CharacterDataWrapper - return self.get_related_resource(Character, CharacterDataWrapper, args, kwargs) + return self._get_related_resource(Character, CharacterDataWrapper, args, kwargs) def get_comics(self, *args, **kwargs): """ @@ -147,7 +147,7 @@ def get_comics(self, *args, **kwargs): :returns: ComicDataWrapper -- A new request to API. Contains full results set. """ from .comic import Comic, ComicDataWrapper - return self.get_related_resource(Comic, ComicDataWrapper, args, kwargs) + return self._get_related_resource(Comic, ComicDataWrapper, args, kwargs) def get_series(self, *args, **kwargs): """ @@ -158,7 +158,7 @@ def get_series(self, *args, **kwargs): :returns: SeriesDataWrapper -- A new request to API. Contains full results set. """ from .series import Series, SeriesDataWrapper - return self.get_related_resource(Series, SeriesDataWrapper, args, kwargs) + return self._get_related_resource(Series, SeriesDataWrapper, args, kwargs) def get_stories(self, *args, **kwargs): """ @@ -169,7 +169,7 @@ def get_stories(self, *args, **kwargs): :returns: StoriesDataWrapper -- A new request to API. Contains full results set. """ from .story import Story, StoryDataWrapper - return self.get_related_resource(Story, StoryDataWrapper, args, kwargs) + return self._get_related_resource(Story, StoryDataWrapper, args, kwargs) """ @@ -204,7 +204,7 @@ def items(self): """ Returns List of EventSummary objects """ - return self.list_to_instance_list(self.dict['items'], EventSummary) + return self._list_to_instance_list(self.dict['items'], EventSummary) class EventSummary(Summary): """ diff --git a/marvel/series.py b/marvel/series.py index 8b70785..b934775 100644 --- a/marvel/series.py +++ b/marvel/series.py @@ -13,7 +13,7 @@ def data(self): class SeriesDataContainer(DataContainer): @property def results(self): - return self.list_to_instance_list(self.dict['results'], Series) + return self._list_to_instance_list(self.dict['results'], Series) class Series(MarvelObject): """ @@ -112,7 +112,7 @@ def get_creators(self, *args, **kwargs): :returns: CreatorDataWrapper -- A new request to API. Contains full results set. """ from .creator import Creator, CreatorDataWrapper - return self.get_related_resource(Creator, CreatorDataWrapper, args, kwargs) + return self._get_related_resource(Creator, CreatorDataWrapper, args, kwargs) def get_characters(self, *args, **kwargs): """ @@ -123,7 +123,7 @@ def get_characters(self, *args, **kwargs): :returns: CreatorDataWrapper -- A new request to API. Contains full results set. """ from .character import Character, CharacterDataWrapper - return self.get_related_resource(Character, CharacterDataWrapper, args, kwargs) + return self._get_related_resource(Character, CharacterDataWrapper, args, kwargs) def get_comics(self, *args, **kwargs): """ @@ -134,7 +134,7 @@ def get_comics(self, *args, **kwargs): :returns: ComicDataWrapper -- A new request to API. Contains full results set. """ from .comic import Comic, ComicDataWrapper - return self.get_related_resource(Comic, ComicDataWrapper, args, kwargs) + return self._get_related_resource(Comic, ComicDataWrapper, args, kwargs) def get_events(self, *args, **kwargs): """ @@ -145,7 +145,7 @@ def get_events(self, *args, **kwargs): :returns: EventDataWrapper -- A new request to API. Contains full results set. """ from .event import Event, EventDataWrapper - return self.get_related_resource(Event, EventDataWrapper, args, kwargs) + return self._get_related_resource(Event, EventDataWrapper, args, kwargs) def get_stories(self, *args, **kwargs): """ @@ -156,7 +156,7 @@ def get_stories(self, *args, **kwargs): :returns: StoriesDataWrapper -- A new request to API. Contains full results set. """ from .story import Story, StoryDataWrapper - return self.get_related_resource(Story, StoryDataWrapper, args, kwargs) + return self._get_related_resource(Story, StoryDataWrapper, args, kwargs) class SeriesList(List): @@ -169,7 +169,7 @@ def items(self): """ Returns List of SeriesSummary objects """ - return self.list_to_instance_list(self.dict['items'], SeriesSummary) + return self._list_to_instance_list(self.dict['items'], SeriesSummary) class SeriesSummary(Summary): """ diff --git a/marvel/story.py b/marvel/story.py index 40a6e43..1098555 100644 --- a/marvel/story.py +++ b/marvel/story.py @@ -13,7 +13,7 @@ def data(self): class StoryDataContainer(DataContainer): @property def results(self): - return self.list_to_instance_list(self.dict['results'], Story) + return self._list_to_instance_list(self.dict['results'], Story) class Story(MarvelObject): """ @@ -97,7 +97,7 @@ def get_creators(self, *args, **kwargs): :returns: CreatorDataWrapper -- A new request to API. Contains full results set. """ from .creator import Creator, CreatorDataWrapper - return self.get_related_resource(Creator, CreatorDataWrapper, args, kwargs) + return self._get_related_resource(Creator, CreatorDataWrapper, args, kwargs) def get_characters(self, *args, **kwargs): """ @@ -108,7 +108,7 @@ def get_characters(self, *args, **kwargs): :returns: CharacterDataWrapper -- A new request to API. Contains full results set. """ from .character import Character, CharacterDataWrapper - return self.get_related_resource(Character, CharacterDataWrapper, args, kwargs) + return self._get_related_resource(Character, CharacterDataWrapper, args, kwargs) def get_comics(self, *args, **kwargs): """ @@ -119,7 +119,7 @@ def get_comics(self, *args, **kwargs): :returns: ComicDataWrapper -- A new request to API. Contains full results set. """ from .comic import Comic, ComicDataWrapper - return self.get_related_resource(Comic, ComicDataWrapper, args, kwargs) + return self._get_related_resource(Comic, ComicDataWrapper, args, kwargs) def get_events(self, *args, **kwargs): """ @@ -130,7 +130,7 @@ def get_events(self, *args, **kwargs): :returns: EventDataWrapper -- A new request to API. Contains full results set. """ from .event import Event, EventDataWrapper - return self.get_related_resource(Event, EventDataWrapper, args, kwargs) + return self._get_related_resource(Event, EventDataWrapper, args, kwargs) class StoryList(List): @@ -143,7 +143,7 @@ def items(self): """ Returns List of StorySummary objects """ - return self.list_to_instance_list(self.dict['items'], StorySummary) + return self._list_to_instance_list(self.dict['items'], StorySummary) class StorySummary(Summary): """ From 0fc805da5d330730980be6ef98b9f648faff1e94 Mon Sep 17 00:00:00 2001 From: Garrett Pennington Date: Sun, 9 Mar 2014 15:09:02 -0500 Subject: [PATCH 3/3] get resource methods now take a dict for params rather than kwargs --- marvel/character.py | 33 +++++++--------------------- marvel/comic.py | 16 +++++++------- marvel/core.py | 8 +++---- marvel/creator.py | 16 +++++++------- marvel/event.py | 20 ++++++++--------- marvel/marvel.py | 32 ++++++++++++++------------- marvel/series.py | 20 ++++++++--------- marvel/story.py | 16 +++++++------- marvel/tests.py | 43 ++++++++++++++++++++++--------------- reports/coverage_report.txt | 20 ++++++++--------- 10 files changed, 109 insertions(+), 115 deletions(-) diff --git a/marvel/character.py b/marvel/character.py index 43a959b..6da8c27 100644 --- a/marvel/character.py +++ b/marvel/character.py @@ -12,23 +12,6 @@ class CharacterDataWrapper(DataWrapper): def data(self): return CharacterDataContainer(self.marvel, self.dict['data']) - def next(self): - """ - Returns new CharacterDataWrapper - TODO: Don't raise offset past count - limit - """ - self.params['offset'] = str(int(self.params['offset']) + int(self.params['limit'])) - return self.marvel.get_characters(self.marvel, (), **self.params) - - def previous(self): - """ - Returns new CharacterDataWrapper - TODO: Don't lower offset below 0 - """ - self.params['offset'] = str(int(self.params['offset']) - int(self.params['limit'])) - return self.marvel.get_characters(self.marvel, (), **self.params) - - class CharacterDataContainer(DataContainer): @property def results(self): @@ -122,7 +105,7 @@ def series(self): """ return SeriesList(self.marvel, self.dict['series']) - def get_comics(self, *args, **kwargs): + def get_comics(self, params=None): """ Returns a full ComicDataWrapper object this character. @@ -131,10 +114,10 @@ def get_comics(self, *args, **kwargs): :returns: ComicDataWrapper -- A new request to API. Contains full results set. """ from .comic import Comic, ComicDataWrapper - return self._get_related_resource(Comic, ComicDataWrapper, args, kwargs) + return self._get_related_resource(Comic, ComicDataWrapper, params) - def get_events(self, *args, **kwargs): + def get_events(self, params=None): """ Returns a full EventDataWrapper object this character. @@ -143,9 +126,9 @@ def get_events(self, *args, **kwargs): :returns: EventDataWrapper -- A new request to API. Contains full results set. """ from .event import Event, EventDataWrapper - return self._get_related_resource(Event, EventDataWrapper, args, kwargs) + return self._get_related_resource(Event, EventDataWrapper, params) - def get_series(self, *args, **kwargs): + def get_series(self, params=None): """ Returns a full SeriesDataWrapper object this character. @@ -154,9 +137,9 @@ def get_series(self, *args, **kwargs): :returns: SeriesDataWrapper -- A new request to API. Contains full results set. """ from .series import Series, SeriesDataWrapper - return self._get_related_resource(Series, SeriesDataWrapper, args, kwargs) + return self._get_related_resource(Series, SeriesDataWrapper, params) - def get_stories(self, *args, **kwargs): + def get_stories(self, params=None): """ Returns a full StoryDataWrapper object this character. @@ -165,7 +148,7 @@ def get_stories(self, *args, **kwargs): :returns: StoriesDataWrapper -- A new request to API. Contains full results set. """ from .story import Story, StoryDataWrapper - return self._get_related_resource(Story, StoryDataWrapper, args, kwargs) + return self._get_related_resource(Story, StoryDataWrapper, params) class CharacterList(List): """ diff --git a/marvel/comic.py b/marvel/comic.py index 35f0eb0..c918ef2 100644 --- a/marvel/comic.py +++ b/marvel/comic.py @@ -176,7 +176,7 @@ def events(self): return EventList(self.marvel, self.dict['events']) - def get_creators(self, *args, **kwargs): + def get_creators(self, params=None): """ Returns a full CreatorDataWrapper object for this character. @@ -185,9 +185,9 @@ def get_creators(self, *args, **kwargs): :returns: CreatorDataWrapper -- A new request to API. Contains full results set. """ from .creator import Creator, CreatorDataWrapper - return self._get_related_resource(Creator, CreatorDataWrapper, args, kwargs) + return self._get_related_resource(Creator, CreatorDataWrapper, params) - def get_characters(self, *args, **kwargs): + def get_characters(self, params=None): """ Returns a full CharacterDataWrapper object for this character. @@ -196,9 +196,9 @@ def get_characters(self, *args, **kwargs): :returns: CreatorDataWrapper -- A new request to API. Contains full results set. """ from .character import Character, CharacterDataWrapper - return self._get_related_resource(Character, CharacterDataWrapper, args, kwargs) + return self._get_related_resource(Character, CharacterDataWrapper, params) - def get_events(self, *args, **kwargs): + def get_events(self, params=None): """ Returns a full EventDataWrapper object this character. @@ -207,9 +207,9 @@ def get_events(self, *args, **kwargs): :returns: EventDataWrapper -- A new request to API. Contains full results set. """ from .event import Event, EventDataWrapper - return self._get_related_resource(Event, EventDataWrapper, args, kwargs) + return self._get_related_resource(Event, EventDataWrapper, params) - def get_stories(self, *args, **kwargs): + def get_stories(self, params=None): """ Returns a full StoryDataWrapper object this comic. @@ -218,7 +218,7 @@ def get_stories(self, *args, **kwargs): :returns: StoriesDataWrapper -- A new request to API. Contains full results set. """ from .story import Story, StoryDataWrapper - return self._get_related_resource(Story, StoryDataWrapper, args, kwargs) + return self._get_related_resource(Story, StoryDataWrapper, params) class ComicList(List): diff --git a/marvel/core.py b/marvel/core.py index 30e856d..1d22fc5 100644 --- a/marvel/core.py +++ b/marvel/core.py @@ -55,7 +55,7 @@ def _list_to_instance_list(_self, _list, _Class): items.append(_Class(_self.marvel, item)) return items - def _get_related_resource(_self, _Class, _ClassDataWrapper, *args, **kwargs): + def _get_related_resource(_self, _Class, _ClassDataWrapper, params): """ Takes a related resource Class and returns the related resource DataWrapper. @@ -67,13 +67,13 @@ def _get_related_resource(_self, _Class, _ClassDataWrapper, *args, **kwargs): :type _Class: core.MarvelObject :param _ClassDataWrapper: The Resource response object :type _Class: core.MarvelObject - :param kwargs: dict of query params for the API - :type kwargs: dict + :param params: dict of query params for the API + :type params: dict :returns: DataWrapper -- DataWrapper for requested Resource """ url = "%s/%s/%s" % (_self.resource_url(), _self.id, _Class.resource_url()) - response = json.loads(_self.marvel._call(url, _self.marvel._params(kwargs)).text) + response = json.loads(_self.marvel._call(url, _self.marvel._params(params)).text) return _ClassDataWrapper(_self.marvel, response) class DataWrapper(MarvelObject): diff --git a/marvel/creator.py b/marvel/creator.py index 7f97638..64625b3 100644 --- a/marvel/creator.py +++ b/marvel/creator.py @@ -137,7 +137,7 @@ def events(self): from .event import EventList return EventList(self.marvel, self.dict['events']) - def get_comics(self, *args, **kwargs): + def get_comics(self, params=None): """ Returns a full ComicDataWrapper object for this creator. @@ -146,9 +146,9 @@ def get_comics(self, *args, **kwargs): :returns: ComicDataWrapper -- A new request to API. Contains full results set. """ from .comic import Comic, ComicDataWrapper - return self._get_related_resource(Comic, ComicDataWrapper, args, kwargs) + return self._get_related_resource(Comic, ComicDataWrapper, params) - def get_events(self, *args, **kwargs): + def get_events(self, params=None): """ Returns a full EventDataWrapper object for this creator. @@ -157,9 +157,9 @@ def get_events(self, *args, **kwargs): :returns: EventDataWrapper -- A new request to API. Contains full results set. """ from .event import Event, EventDataWrapper - return self._get_related_resource(Event, EventDataWrapper, args, kwargs) + return self._get_related_resource(Event, EventDataWrapper, params) - def get_series(self, *args, **kwargs): + def get_series(self, params=None): """ Returns a full SeriesDataWrapper object for this creator. @@ -168,9 +168,9 @@ def get_series(self, *args, **kwargs): :returns: SeriesDataWrapper -- A new request to API. Contains full results set. """ from .series import Series, SeriesDataWrapper - return self._get_related_resource(Series, SeriesDataWrapper, args, kwargs) + return self._get_related_resource(Series, SeriesDataWrapper, params) - def get_stories(self, *args, **kwargs): + def get_stories(self, params=None): """ Returns a full StoryDataWrapper object for this creator. @@ -179,7 +179,7 @@ def get_stories(self, *args, **kwargs): :returns: StoriesDataWrapper -- A new request to API. Contains full results set. """ from .story import Story, StoryDataWrapper - return self._get_related_resource(Story, StoryDataWrapper, args, kwargs) + return self._get_related_resource(Story, StoryDataWrapper, params) class CreatorList(List): """ diff --git a/marvel/event.py b/marvel/event.py index da4b805..05e3abb 100644 --- a/marvel/event.py +++ b/marvel/event.py @@ -116,7 +116,7 @@ def previoius(self): return EventSummary(self.marvel, self.dict['previous']) - def get_creators(self, *args, **kwargs): + def get_creators(self, params=None): """ Returns a full CreatorDataWrapper object for this event. @@ -125,9 +125,9 @@ def get_creators(self, *args, **kwargs): :returns: CreatorDataWrapper -- A new request to API. Contains full results set. """ from .creator import Creator, CreatorDataWrapper - return self._get_related_resource(Creator, CreatorDataWrapper, args, kwargs) + return self._get_related_resource(Creator, CreatorDataWrapper, params) - def get_characters(self, *args, **kwargs): + def get_characters(self, params=None): """ Returns a full CharacterDataWrapper object for this event. @@ -136,9 +136,9 @@ def get_characters(self, *args, **kwargs): :returns: CreatorDataWrapper -- A new request to API. Contains full results set. """ from .character import Character, CharacterDataWrapper - return self._get_related_resource(Character, CharacterDataWrapper, args, kwargs) + return self._get_related_resource(Character, CharacterDataWrapper, params) - def get_comics(self, *args, **kwargs): + def get_comics(self, params=None): """ Returns a full ComicDataWrapper object for this event. @@ -147,9 +147,9 @@ def get_comics(self, *args, **kwargs): :returns: ComicDataWrapper -- A new request to API. Contains full results set. """ from .comic import Comic, ComicDataWrapper - return self._get_related_resource(Comic, ComicDataWrapper, args, kwargs) + return self._get_related_resource(Comic, ComicDataWrapper, params) - def get_series(self, *args, **kwargs): + def get_series(self, params=None): """ Returns a full SeriesDataWrapper object for this event. @@ -158,9 +158,9 @@ def get_series(self, *args, **kwargs): :returns: SeriesDataWrapper -- A new request to API. Contains full results set. """ from .series import Series, SeriesDataWrapper - return self._get_related_resource(Series, SeriesDataWrapper, args, kwargs) + return self._get_related_resource(Series, SeriesDataWrapper, params) - def get_stories(self, *args, **kwargs): + def get_stories(self, params=None): """ Returns a full StoryDataWrapper object for this event. @@ -169,7 +169,7 @@ def get_stories(self, *args, **kwargs): :returns: StoriesDataWrapper -- A new request to API. Contains full results set. """ from .story import Story, StoryDataWrapper - return self._get_related_resource(Story, StoryDataWrapper, args, kwargs) + return self._get_related_resource(Story, StoryDataWrapper, params) """ diff --git a/marvel/marvel.py b/marvel/marvel.py index 13ff58b..f7088aa 100644 --- a/marvel/marvel.py +++ b/marvel/marvel.py @@ -54,7 +54,7 @@ def _call(self, resource_url, params=None): url += "?%s" % self._auth() return requests.get(url) - def _params(self, params): + def _params(self, params=None): """ Takes dictionary of parameters and returns urlencoded string @@ -64,7 +64,9 @@ def _params(self, params): :returns: str -- URL encoded query parameters """ - return urllib.urlencode(params) + if params: + return urllib.urlencode(params) + return "" def _auth(self): """ @@ -103,7 +105,7 @@ def get_character(self, id): response = json.loads(self._call(url).text) return CharacterDataWrapper(self, response) - def get_characters(self, *args, **kwargs): + def get_characters(self, params=None): """Fetches lists of comic characters with optional filters. get /v1/public/characters/{characterId} @@ -124,8 +126,8 @@ def get_characters(self, *args, **kwargs): """ #pass url string and params string to _call - response = json.loads(self._call(Character.resource_url(), self._params(kwargs)).text) - return CharacterDataWrapper(self, response, kwargs) + response = json.loads(self._call(Character.resource_url(), self._params(params)).text) + return CharacterDataWrapper(self, response, params) def get_comic(self, id): """Fetches a single comic by id. @@ -149,7 +151,7 @@ def get_comic(self, id): response = json.loads(self._call(url).text) return ComicDataWrapper(self, response) - def get_comics(self, *args, **kwargs): + def get_comics(self, params=None): """ Fetches list of comics. @@ -166,7 +168,7 @@ def get_comics(self, *args, **kwargs): """ - response = json.loads(self._call(Comic.resource_url(), self._params(kwargs)).text) + response = json.loads(self._call(Comic.resource_url(), self._params(params)).text) return ComicDataWrapper(self, response) @@ -193,7 +195,7 @@ def get_creator(self, id): return CreatorDataWrapper(self, response) - def get_creators(self, *args, **kwargs): + def get_creators(self, params=None): """Fetches lists of creators. get /v1/public/creators @@ -208,7 +210,7 @@ def get_creators(self, *args, **kwargs): Alvin Lee """ - response = json.loads(self._call(Creator.resource_url(), self._params(kwargs)).text) + response = json.loads(self._call(Creator.resource_url(), self._params(params)).text) return CreatorDataWrapper(self, response) @@ -233,7 +235,7 @@ def get_event(self, id): return EventDataWrapper(self, response) - def get_events(self, *args, **kwargs): + def get_events(self, params=None): """Fetches lists of events. get /v1/public/events @@ -252,7 +254,7 @@ def get_events(self, *args, **kwargs): Age of Apocalypse """ - response = json.loads(self._call(Event.resource_url(), self._params(kwargs)).text) + response = json.loads(self._call(Event.resource_url(), self._params(params)).text) return EventDataWrapper(self, response) @@ -277,7 +279,7 @@ def get_single_series(self, id): return SeriesDataWrapper(self, response) - def get_series(self, *args, **kwargs): + def get_series(self, params=None): """Fetches lists of events. get /v1/public/events @@ -295,7 +297,7 @@ def get_series(self, *args, **kwargs): 5 Ronin (2010) """ - response = json.loads(self._call(Series.resource_url(), self._params(kwargs)).text) + response = json.loads(self._call(Series.resource_url(), self._params(params)).text) return SeriesDataWrapper(self, response) def get_story(self, id): @@ -319,7 +321,7 @@ def get_story(self, id): return StoryDataWrapper(self, response) - def get_stories(self, *args, **kwargs): + def get_stories(self, params=None): """Fetches lists of stories. get /v1/public/stories @@ -338,5 +340,5 @@ def get_stories(self, *args, **kwargs): Cover #477 """ - response = json.loads(self._call(Story.resource_url(), self._params(kwargs)).text) + response = json.loads(self._call(Story.resource_url(), self._params(params)).text) return StoryDataWrapper(self, response) \ No newline at end of file diff --git a/marvel/series.py b/marvel/series.py index b934775..c3002e3 100644 --- a/marvel/series.py +++ b/marvel/series.py @@ -103,7 +103,7 @@ def next(self): def previoius(self): return SeriesSummary(self.marvel, self.dict['previous']) - def get_creators(self, *args, **kwargs): + def get_creators(self, params=None): """ Returns a full CreatorDataWrapper object for this series. @@ -112,9 +112,9 @@ def get_creators(self, *args, **kwargs): :returns: CreatorDataWrapper -- A new request to API. Contains full results set. """ from .creator import Creator, CreatorDataWrapper - return self._get_related_resource(Creator, CreatorDataWrapper, args, kwargs) + return self._get_related_resource(Creator, CreatorDataWrapper, params) - def get_characters(self, *args, **kwargs): + def get_characters(self, params=None): """ Returns a full CharacterDataWrapper object for this series. @@ -123,9 +123,9 @@ def get_characters(self, *args, **kwargs): :returns: CreatorDataWrapper -- A new request to API. Contains full results set. """ from .character import Character, CharacterDataWrapper - return self._get_related_resource(Character, CharacterDataWrapper, args, kwargs) + return self._get_related_resource(Character, CharacterDataWrapper, params) - def get_comics(self, *args, **kwargs): + def get_comics(self, params=None): """ Returns a full ComicDataWrapper object for this series. @@ -134,9 +134,9 @@ def get_comics(self, *args, **kwargs): :returns: ComicDataWrapper -- A new request to API. Contains full results set. """ from .comic import Comic, ComicDataWrapper - return self._get_related_resource(Comic, ComicDataWrapper, args, kwargs) + return self._get_related_resource(Comic, ComicDataWrapper, params) - def get_events(self, *args, **kwargs): + def get_events(self, params=None): """ Returns a full EventDataWrapper object for this series. @@ -145,9 +145,9 @@ def get_events(self, *args, **kwargs): :returns: EventDataWrapper -- A new request to API. Contains full results set. """ from .event import Event, EventDataWrapper - return self._get_related_resource(Event, EventDataWrapper, args, kwargs) + return self._get_related_resource(Event, EventDataWrapper, params) - def get_stories(self, *args, **kwargs): + def get_stories(self, params=None): """ Returns a full StoryDataWrapper object for this series. @@ -156,7 +156,7 @@ def get_stories(self, *args, **kwargs): :returns: StoriesDataWrapper -- A new request to API. Contains full results set. """ from .story import Story, StoryDataWrapper - return self._get_related_resource(Story, StoryDataWrapper, args, kwargs) + return self._get_related_resource(Story, StoryDataWrapper, params) class SeriesList(List): diff --git a/marvel/story.py b/marvel/story.py index 1098555..b111612 100644 --- a/marvel/story.py +++ b/marvel/story.py @@ -88,7 +88,7 @@ def originalIssue(self): return ComicSummary(self.marvel, self.dict['originalIssue']) - def get_creators(self, *args, **kwargs): + def get_creators(self, params=None): """ Returns a full CreatorDataWrapper object for this story. @@ -97,9 +97,9 @@ def get_creators(self, *args, **kwargs): :returns: CreatorDataWrapper -- A new request to API. Contains full results set. """ from .creator import Creator, CreatorDataWrapper - return self._get_related_resource(Creator, CreatorDataWrapper, args, kwargs) + return self._get_related_resource(Creator, CreatorDataWrapper, params) - def get_characters(self, *args, **kwargs): + def get_characters(self, params=None): """ Returns a full CharacterDataWrapper object for this story. @@ -108,9 +108,9 @@ def get_characters(self, *args, **kwargs): :returns: CharacterDataWrapper -- A new request to API. Contains full results set. """ from .character import Character, CharacterDataWrapper - return self._get_related_resource(Character, CharacterDataWrapper, args, kwargs) + return self._get_related_resource(Character, CharacterDataWrapper, params) - def get_comics(self, *args, **kwargs): + def get_comics(self, params=None): """ Returns a full ComicDataWrapper object this story. @@ -119,9 +119,9 @@ def get_comics(self, *args, **kwargs): :returns: ComicDataWrapper -- A new request to API. Contains full results set. """ from .comic import Comic, ComicDataWrapper - return self._get_related_resource(Comic, ComicDataWrapper, args, kwargs) + return self._get_related_resource(Comic, ComicDataWrapper, params) - def get_events(self, *args, **kwargs): + def get_events(self, params=None): """ Returns a full EventDataWrapper object this story. @@ -130,7 +130,7 @@ def get_events(self, *args, **kwargs): :returns: EventDataWrapper -- A new request to API. Contains full results set. """ from .event import Event, EventDataWrapper - return self._get_related_resource(Event, EventDataWrapper, args, kwargs) + return self._get_related_resource(Event, EventDataWrapper, params) class StoryList(List): diff --git a/marvel/tests.py b/marvel/tests.py index 7a46e84..3e1f02e 100644 --- a/marvel/tests.py +++ b/marvel/tests.py @@ -38,7 +38,6 @@ def setUp(self): self.story_dw = self.m.get_story(29) self.story = self.story_dw.data.result - def tearDown(self): pass @@ -63,7 +62,8 @@ def test_character_get_comics(self): for c in comic_dw.data.results: print "%s - %s" % (c.id, c.title) - comic_dw_params = self.character.get_comics(format="comic", formatType="comic", hasDigitalIssue=True, orderBy="title", limit=10, offset=30) + params = {'format':"comic", 'formatType':"comic", 'hasDigitalIssue':True, 'orderBy':"title", 'limit':10, 'offset':30 } + comic_dw_params = self.character.get_comics(params) assert comic_dw_params.code == 200 assert comic_dw_params.status == 'Ok' @@ -83,7 +83,8 @@ def test_character_get_events(self): for e in events_dw.data.results: print "%s - %s" % (e.id, e.title) - events_dw_params = self.character.get_events(orderBy="startDate", limit=10) + params = {'orderBy':"startDate", 'limit':10} + events_dw_params = self.character.get_events(params) assert events_dw_params.code == 200 assert events_dw_params.status == 'Ok' @@ -94,7 +95,8 @@ def test_character_get_events(self): def test_get_characters(self): - characters_dw = self.m.get_characters(orderBy="name,-modified", limit="10", offset="15") + params = { 'orderBy': "name,-modified", 'limit':"10", 'offset':"15" } + characters_dw = self.m.get_characters(params) assert characters_dw.code == 200 assert characters_dw.status == 'Ok' @@ -112,9 +114,10 @@ def test_get_characters(self): for c in characters_dw.data.results: print "%s - %s" % (c.id, c.name) - def test_get_characters_next(self): + def xtest_get_characters_next(self): - characters_dw = self.m.get_characters(orderBy="name,-modified", limit="10", offset="15") + params = {'orderBy':"name,-modified", 'limit':"10", 'offset':"15"} + characters_dw = self.m.get_characters(params) new_cdw = characters_dw.next() assert new_cdw.code == 200 @@ -125,7 +128,7 @@ def test_get_characters_next(self): - + #Comic Tests def test_get_comic(self): @@ -179,7 +182,8 @@ def test_comic_get_events(self): for e in events_dw.data.results: print "%s - %s" % (e.id, e.title) - events_dw_params = self.comic.get_events(orderBy="startDate", limit=1) + params = {'orderBy':"startDate", 'limit':1} + events_dw_params = self.comic.get_events(params) assert events_dw_params.code == 200 assert events_dw_params.status == 'Ok' @@ -190,7 +194,8 @@ def test_comic_get_events(self): def test_get_comics(self): - cdw = self.m.get_comics(orderBy="issueNumber,-modified", limit="10", offset="15") + params = {'orderBy':"issueNumber,-modified", 'limit':10, 'offset':15} + cdw = self.m.get_comics(params) assert cdw.code == 200 assert cdw.status == 'Ok' @@ -226,7 +231,8 @@ def test_creator_get_comics(self): for c in comic_dw.data.results: print "%s - %s" % (c.id, c.title) - comic_dw_params = self.creator.get_comics(format="comic", formatType="comic", hasDigitalIssue=True, orderBy="title", limit=10, offset=30) + params = {'format':"comic", 'formatType':"comic", 'hasDigitalIssue':True, 'orderBy':"title", 'limit':10, 'offset':30} + comic_dw_params = self.creator.get_comics(params) assert comic_dw_params.code == 200 assert comic_dw_params.status == 'Ok' @@ -246,7 +252,8 @@ def test_creator_get_events(self): for e in events_dw.data.results: print "%s - %s" % (e.id, e.title) - events_dw_params = self.creator.get_events(orderBy="startDate") + params = {'orderBy':"startDate"} + events_dw_params = self.creator.get_events(params) assert events_dw_params.code == 200 assert events_dw_params.status == 'Ok' @@ -273,7 +280,8 @@ def test_get_event(self): def test_get_events(self): - response = self.m.get_events(characters="1009351,1009718") + params = {'characters':"1009351,1009718"} + response = self.m.get_events(params) assert response.code == 200 assert response.status == 'Ok' @@ -294,8 +302,8 @@ def test_get_single_series(self): print self.series.title def test_get_series(self): - - response = self.m.get_series(characters="1009718", limit=10) + params = {'characters':"1009718", 'limit':10} + response = self.m.get_series() assert response.code == 200 assert response.status == 'Ok' @@ -317,8 +325,8 @@ def test_get_story(self): print self.story.title def test_get_stories(self): - - response = self.m.get_stories(characters="1009351,1009718", limit=10) + params = {'characters':"1009351,1009718", 'limit':10} + response = self.m.get_stories(params) assert response.code == 200 assert response.status == 'Ok' @@ -331,7 +339,8 @@ def test_get_stories(self): def test_chain(self): print "\nMethod Chaining:\n" - event = self.m.get_series(characters="1009718").data.result.get_characters().data.results[1].get_comics().data.results[0].get_creators().data.results[0].get_events().data.results[0] + params = {'characters':"1009718"} + event = self.m.get_series(params).data.result.get_characters().data.results[1].get_comics().data.results[0].get_creators().data.results[0].get_events().data.results[0] assert isinstance(event, Event) print event.title diff --git a/reports/coverage_report.txt b/reports/coverage_report.txt index cce34fc..b8b2da9 100644 --- a/reports/coverage_report.txt +++ b/reports/coverage_report.txt @@ -1,15 +1,15 @@ Name Stmts Miss Cover Missing ------------------------------------------------ marvel/__init__ 0 0 100% -marvel/character 74 39 47% 20-21, 28-29, 35, 48, 52, 56, 60, 64, 68, 72, 76-79, 83-86, 90, 95-99, 103-107, 111-115, 119-123, 133-134, 145-146, 156-157, 167-168, 179, 188 -marvel/comic 102 49 52% 13, 18, 30, 34, 38, 42, 46, 53, 57, 61, 65, 69, 73, 77, 81, 85, 89, 96, 100, 104, 108, 115, 122, 129, 133, 137, 141, 145, 149-150, 154-155, 159-160, 164-165, 176-177, 187-188, 198-199, 209-210, 223, 236, 240, 248, 252 +marvel/character 68 27 60% 39, 43, 47, 51, 55, 59-62, 66-69, 73, 78-82, 86-90, 94-98, 102-106, 139-140, 150-151, 171 +marvel/comic 102 32 69% 45, 53, 57, 64, 68, 72, 76, 80, 84, 88, 92, 96, 100, 107, 111, 115, 119, 126, 140, 175-176, 187-188, 198-199, 220-221, 234, 247, 251, 259, 263 marvel/config 2 0 100% -marvel/core 75 33 56% 20-21, 24, 27, 38-41, 51-53, 75, 79, 83, 97-98, 103, 107, 111, 115, 123, 129, 139, 143, 147, 156, 160, 173, 177, 181, 191, 195, 198 -marvel/creator 65 31 52% 13, 36, 49, 53, 57, 61, 65, 69, 74, 78, 82, 86, 106, 113-114, 121-122, 126-130, 137-138, 148-149, 159-160, 170-171, 181-182, 194, 203 -marvel/event 76 39 49% 11, 16, 28, 32, 39, 43, 47, 51, 55, 59, 63, 67, 71, 75, 79-80, 84-85, 92-93, 97-98, 102-103, 107-108, 112, 116, 127-128, 138-139, 149-150, 160-161, 171-172, 207 -marvel/marvel 74 29 61% 55, 65, 113-114, 129-131, 138-139, 157-159, 177-178, 194-196, 218-219, 235-237, 258-259, 274-276, 298-299 -marvel/series 73 37 49% 11, 16, 27, 31, 38, 42, 46, 50, 54, 58, 62, 66, 70, 75-76, 80-81, 85-86, 90-91, 95-96, 100, 104, 114-115, 125-126, 136-137, 147-148, 158-159, 172, 181 -marvel/story 63 32 49% 11, 16, 27, 31, 38, 42, 46, 50, 54, 58, 62-63, 67-68, 72-73, 77-78, 82-83, 87-88, 99-100, 110-111, 121-122, 132-133, 146, 155 -marvel/tests 210 173 18% 25-39, 43, 48-53, 57-73, 77-93, 97-113, 117-123, 132-168, 173-189, 193-208, 213-216, 220-236, 240-256, 262-272, 276-285, 289-294, 298-307, 312-317, 321-329, 333-336, 339 +marvel/core 78 18 77% 21-24, 30, 124, 195, 210, 219, 228, 242, 251, 261, 270, 279, 290, 299, 302 +marvel/creator 65 21 68% 57, 65, 69, 74, 78, 82, 86, 106, 113-114, 121-122, 126-130, 137-138, 170-171, 181-182, 203 +marvel/event 76 34 55% 43, 47, 51, 55, 59, 63, 67, 71, 75, 79-80, 84-85, 92-93, 97-98, 102-103, 107-108, 112, 116, 127-128, 138-139, 149-150, 160-161, 171-172, 207 +marvel/marvel 76 2 97% 213-214 +marvel/series 73 31 58% 38, 42, 46, 50, 54, 58, 62, 66, 70, 75-76, 80-81, 85-86, 90-91, 95-96, 100, 104, 114-115, 136-137, 147-148, 158-159, 172, 181 +marvel/story 63 28 56% 27, 38, 42, 46, 50, 54, 58, 62-63, 67-68, 72-73, 77-78, 82-83, 87-88, 99-100, 110-111, 121-122, 132-133, 155 +marvel/tests 222 8 96% 119-126, 344-345, 348 ------------------------------------------------ -TOTAL 814 462 43% +TOTAL 825 201 76%