scryfall-py/tests/test_card_endpoints.py

87 lines
2.4 KiB
Python

import pytest
from pyfall import Pyfall
test_card_uuid = "1e90c638-d4b2-4243-bbc4-1cc10516c40f"
test_card_name = "Arcades, the Strategist"
@pytest.mark.asyncio
async def test_get_card_by_all_ids():
client = Pyfall()
card = await client.get_card_by_id(test_card_uuid)
assert card.name == test_card_name
assert card.arena_id is not None
assert card.mtgo_id is not None
assert card.tcgplayer_id is not None
assert card.cardmarket_id is not None
_ = await client.get_card_by_arena_id(card.arena_id)
_ = await client.get_card_by_cardmarket_id(card.cardmarket_id)
_ = await client.get_card_by_mtgo_id(card.mtgo_id)
_ = await client.get_card_by_tcgplayer_id(card.tcgplayer_id)
if card.multiverse_ids and len(card.multiverse_ids) > 0:
_ = await client.get_card_by_multiverse_id(card.multiverse_ids[0])
await client.close()
@pytest.mark.asyncio
async def test_get_card_rulings():
client = Pyfall()
card = await client.get_card_by_id(test_card_uuid)
rulings = await card.get_rulings()
assert len(rulings) > 0
@pytest.mark.asyncio
async def test_search_card_all():
client = Pyfall()
with pytest.raises(ValueError):
_ = await client.search_cards(q="_" * 1001)
with pytest.raises(ValueError):
_ = await client.search_cards_named()
cards = await client.search_cards(q="arcades, the strategist", unique="cards")
assert any(str(x.id) == test_card_uuid for x in cards.data if x.object == "card")
assert await cards.get_next_page() is None
card = await client.search_cards_named(exact="arcades, the strategist")
assert str(card.id) == test_card_uuid
card = await client.search_cards_named(fuzzy="arcades the strategist")
assert str(card.id) == test_card_uuid
cards = await client.search_cards(q="angel")
if cards.has_more:
cards = await cards.get_next_page()
@pytest.mark.asyncio
async def test_cards_autocomplete():
client = Pyfall()
catalog = await client.cards_autocomplete(q="avacyn")
assert "Avacyn, Angel of Hope" in catalog.data
@pytest.mark.asyncio
async def test_get_random_card():
client = Pyfall()
card = await client.get_random_card()
assert card is not None
@pytest.mark.asyncio
async def test_card_set():
client = Pyfall()
card = await client.get_card_by_id(test_card_uuid)
card_set = await card.get_set()
assert card_set.code == "m19"