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']
def frame_effect(self):
def frame_effects(self):
"""The card's frame effect, if any. (miracle, nyxtouched, etc.)
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):
"""Returns True if the card is considered full art
@ -472,13 +472,13 @@ class CardsObject(FoundationObject):
Returns:
float: The prices as a float
"""
modes = ['usd', 'eur', 'tix']
modes = ['usd', 'usd_foil', 'eur', 'tix']
if mode not in modes:
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):
"""A dictionary of related websites for this card

View File

@ -37,7 +37,7 @@ class FoundationObject(object):
if self.scryfallJson['object'] == 'error':
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.
This function should be considered private, and
should not be accessed in production.
@ -51,6 +51,11 @@ class FoundationObject(object):
if not key in self.scryfallJson:
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):
"""Checks for a key of an object in an array.
This function should be considered private, and

View File

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