SIMNet/tests/test_genshin_calculator_client.py

53 lines
1.8 KiB
Python
Raw Permalink Normal View History

2023-05-09 03:50:01 +00:00
from typing import TYPE_CHECKING
import pytest
import pytest_asyncio
from simnet.client.components.calculator.genshin import CalculatorClient
2023-05-11 08:39:04 +00:00
from simnet.client.components.chronicle.genshin import GenshinBattleChronicleClient
2023-05-09 03:50:01 +00:00
if TYPE_CHECKING:
from simnet.client.cookies import Cookies
2023-12-27 07:09:24 +00:00
from simnet.utils.enums import Region
2023-05-09 03:50:01 +00:00
@pytest_asyncio.fixture
async def calculator_client(genshin_player_id: int, account_id: int, region: "Region", cookies: "Cookies"):
if genshin_player_id is None:
pytest.skip("Test case test_starrail_battle_chronicle_client skipped: No genshin player id set.")
2023-05-09 03:50:01 +00:00
async with CalculatorClient(
player_id=genshin_player_id,
cookies=cookies,
account_id=account_id,
region=region,
2023-05-09 03:50:01 +00:00
) as client_instance:
yield client_instance
2023-05-11 08:39:04 +00:00
@pytest_asyncio.fixture
async def genshin_battle_chronicle_client(
genshin_player_id: int, account_id: int, region: "Region", cookies: "Cookies"
):
2023-05-11 08:39:04 +00:00
async with GenshinBattleChronicleClient(
player_id=genshin_player_id,
cookies=cookies,
account_id=account_id,
region=region,
2023-05-11 08:39:04 +00:00
) as client_instance:
yield client_instance
2023-05-09 03:50:01 +00:00
@pytest.mark.asyncio
class TestCalculatorClient:
@staticmethod
2023-05-11 08:39:04 +00:00
async def test_character_details(
calculator_client: "CalculatorClient", genshin_battle_chronicle_client: "GenshinBattleChronicleClient"
):
characters = await genshin_battle_chronicle_client.get_genshin_characters()
character_details = await calculator_client.get_character_details(characters[-1].id)
2023-05-09 03:50:01 +00:00
assert len(character_details.talents) == 6
for talent in character_details.talents:
2023-05-11 08:39:04 +00:00
assert talent.level > -1
2023-05-09 03:50:01 +00:00
for artifact in character_details.artifacts:
assert artifact.level >= 0