def test_card_value_by_set(self): with patch('collection_app.cards_api.ScryfallAPI._get_card', return_value=constants.GOOD_RESPONSE): card = CardScryfallImpl(name='Mox Opal', foil=False, expansion='Scars of Mirrodin') assert card.value == 100.97 card = CardScryfallImpl(name='Mox Opal', foil=False, expansion='Modern Masters 2015') assert card.value == 104.5 card = CardScryfallImpl(name='Mox Opal', foil=True, expansion='Kaladesh Inventions') assert card.value == 293.27
def list(self, request, format=None): cards = Card.objects.filter(owner=request.user) for card in cards: tmp_card = CardScryfallImpl(name=card.name, expansion=card.expansion, foil=card.foil) tmp_card_value = tmp_card.value card.value = tmp_card_value card.save() return Response('Collection value updated')
def validate(self, data: dict) -> Dict: """ Custom validator on whole request data If data is not valid against external API, return exception """ card = CardScryfallImpl(name=data['name'], expansion=data['expansion']) if card.is_valid: data['value'] = card.value return data raise serializers.ValidationError( f'There is no such combination of {data["name"]} card in {data["expansion"]} set' )
def test_card_non_foil_value(self): with patch('collection_app.cards_api.ScryfallAPI._get_card', return_value=constants.GOOD_RESPONSE): card = CardScryfallImpl(name='Mox Opal', foil=False, expansion='Scars of Mirrodin') assert card.value == 100.97
def test_card_value_is_null(self): with patch('collection_app.cards_api.ScryfallAPI._get_card', return_value=constants.GOOD_RESPONSE): with patch('collection_app.cards_api.ScryfallAPI.get_card_values', return_value=constants.NULL_PRICE_RESPONSE): card = CardScryfallImpl(name='Mox Opal', expansion='Scars of Mirrodin') assert card.value == 0.00
def test_card_value_is_float(self): with patch('collection_app.cards_api.ScryfallAPI._get_card', return_value=constants.GOOD_RESPONSE): card = CardScryfallImpl(name='Mox Opal', expansion='Scars of Mirrodin') assert isinstance(card.value, float)
def test_card_is_invalid(self): with patch('collection_app.cards_api.ScryfallAPI._get_card', side_effect=HTTPError): card = CardScryfallImpl(name='Mx Ol', expansion='Scars of Mirrodin') assert card.is_valid is False
def test_card_instantiation(self): card = CardScryfallImpl(name='Mox Opal', expansion='Scars of Mirrodin') assert isinstance(card, CardScryfallImpl)