コード例 #1
0
 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
コード例 #2
0
    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')
コード例 #3
0
    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'
        )
コード例 #4
0
 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
コード例 #5
0
 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
コード例 #6
0
 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)
コード例 #7
0
 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
コード例 #8
0
 def test_card_instantiation(self):
     card = CardScryfallImpl(name='Mox Opal', expansion='Scars of Mirrodin')
     assert isinstance(card, CardScryfallImpl)