Merge pull request #43 from dstathis/master

Update for some scryfall api changes
This commit is contained in:
Nanda Scott 2019-09-25 19:25:23 -04:00 committed by GitHub
commit 447d5f557b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 10 deletions

View File

@ -420,15 +420,15 @@ class CardsObject(FoundationObject):
return self.scryfallJson['frame'] return self.scryfallJson['frame']
def frame_effect(self): def frame_effects(self):
"""The card's frame effect, if any. (miracle, nyxtouched, etc.) """The card's frame effect, if any. (miracle, nyxtouched, etc.)
Returns: Returns:
string: The card's frame effect. list: The card's frame effects.
""" """
super(CardsObject, self)._checkForKey('frame_effect') super(CardsObject, self)._checkForKey('frame_effects')
return self.scryfallJson['frame_effect'] return self.scryfallJson['frame_effects']
def full_art(self): def full_art(self):
"""Returns True if the card is considered full art """Returns True if the card is considered full art
@ -472,13 +472,13 @@ class CardsObject(FoundationObject):
Returns: Returns:
float: The prices as a float float: The prices as a float
""" """
modes = ['usd', 'eur', 'tix'] modes = ['usd', 'usd_foil', 'eur', 'tix']
if mode not in modes: if mode not in modes:
raise KeyError("{} is not a key.".format(mode)) raise KeyError("{} is not a key.".format(mode))
super(CardsObject, self)._checkForKey(mode) super(CardsObject, self)._checkForKey('prices', mode)
return self.scryfallJson[mode] return self.scryfallJson['prices'][mode]
def related_uris(self): def related_uris(self):
"""A dictionary of related websites for this card """A dictionary of related websites for this card

View File

@ -37,7 +37,7 @@ class FoundationObject(object):
if self.scryfallJson['object'] == 'error': if self.scryfallJson['object'] == 'error':
raise ScryfallError(self.scryfallJson, self.scryfallJson['details']) raise ScryfallError(self.scryfallJson, self.scryfallJson['details'])
def _checkForKey(self, key): def _checkForKey(self, key, nested_key=None):
"""Checks for a key in the scryfallJson object. """Checks for a key in the scryfallJson object.
This function should be considered private, and This function should be considered private, and
should not be accessed in production. should not be accessed in production.
@ -51,6 +51,11 @@ class FoundationObject(object):
if not key in self.scryfallJson: if not key in self.scryfallJson:
raise KeyError('This card has no key \'{}\''.format(key)) raise KeyError('This card has no key \'{}\''.format(key))
if nested_key:
if not nested_key in self.scryfallJson[key]:
raise KeyError('This card has no key \'{}.{}\''.format(key, nested_key))
def _checkForTupleKey(self, parent, num, key): def _checkForTupleKey(self, parent, num, key):
"""Checks for a key of an object in an array. """Checks for a key of an object in an array.
This function should be considered private, and This function should be considered private, and

View File

@ -240,8 +240,8 @@ class TestSearch(unittest.TestCase):
def test_tcgplayer_id(self): def test_tcgplayer_id(self):
self.assertIsInstance(non_online_card.tcgplayer_id(), int) self.assertIsInstance(non_online_card.tcgplayer_id(), int)
def test_frame_effect(self): def test_frame_effects(self):
self.assertIsInstance(transform.frame_effect(), str) self.assertIsInstance(transform.frame_effects(), list)
def test_games(self): def test_games(self):
self.assertIsInstance(non_online_card.games(), list) self.assertIsInstance(non_online_card.games(), list)