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
|
2024-01-23 09:51:22 +00:00
|
|
|
from simnet.utils.enums import Game
|
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
|
2024-11-08 05:22:13 +00:00
|
|
|
async def calculator_client(genshin_player_id: int, region: "Region", cookies: "Cookies"):
|
2023-05-12 03:36:03 +00:00
|
|
|
if genshin_player_id is None:
|
2024-01-23 09:51:22 +00:00
|
|
|
pytest.skip("Test case test_genshin_calculator_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,
|
2023-05-12 03:01:53 +00:00
|
|
|
region=region,
|
2023-05-09 03:50:01 +00:00
|
|
|
) as client_instance:
|
2024-01-23 09:51:22 +00:00
|
|
|
client_instance.game = Game.GENSHIN
|
2023-05-09 03:50:01 +00:00
|
|
|
yield client_instance
|
|
|
|
|
|
|
|
|
2023-05-11 08:39:04 +00:00
|
|
|
@pytest_asyncio.fixture
|
2024-11-08 05:22:13 +00:00
|
|
|
async def genshin_battle_chronicle_client(genshin_player_id: int, region: "Region", cookies: "Cookies"):
|
2023-05-11 08:39:04 +00:00
|
|
|
async with GenshinBattleChronicleClient(
|
|
|
|
player_id=genshin_player_id,
|
|
|
|
cookies=cookies,
|
2023-05-12 03:01:53 +00:00
|
|
|
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
|