SIMNet/tests/test_starrail_battle_chronicle_client.py
洛水居室 f61f2951a5
Add player ID check to client fixtures
In various client fixtures, a player ID check has been added to ensure that the player ID parameter is not None before creating the client object. This check helps to handle scenarios where the player ID is not provided, preventing potential errors or undesired behavior.
2023-05-12 11:36:03 +08:00

48 lines
1.6 KiB
Python

from typing import TYPE_CHECKING
import pytest
import pytest_asyncio
from simnet.client.components.chronicle.starrail import StarRailBattleChronicleClient
if TYPE_CHECKING:
from simnet.client.cookies import Cookies
from simnet.utils.enum_ import Region
@pytest_asyncio.fixture
async def starrail_client(starrail_player_id: int, account_id: int, region: "Region", cookies: "Cookies"):
if starrail_player_id is None:
pytest.skip("Test case test_genshin_calculator_client skipped: No starrail player id set.")
async with StarRailBattleChronicleClient(
player_id=starrail_player_id,
cookies=cookies,
account_id=account_id,
region=region,
) as client_instance:
yield client_instance
@pytest.mark.asyncio
class TestStarrailBattleChronicleClient:
@staticmethod
async def test_get_starrail_user(starrail_client: "StarRailBattleChronicleClient"):
user = await starrail_client.get_starrail_user()
assert user is not None
assert user.stats.chest_num > 0
assert len(user.characters) > 0
character = user.characters[-1]
assert character.id > 0
@staticmethod
async def test_get_starrail_notes(starrail_client: "StarRailBattleChronicleClient"):
notes = await starrail_client.get_starrail_notes()
assert notes is not None
@staticmethod
async def test_get_starrail_characters(starrail_client: "StarRailBattleChronicleClient"):
characters = await starrail_client.get_starrail_characters()
assert len(characters.avatar_list) > 0
character = characters.avatar_list[-1]
assert character.id > 0