import logging import aiofiles import pytest import pytest_asyncio from flaky import flaky from modules.apihelper.artifact import ArtifactOcrRate LOGGER = logging.getLogger(__name__) @pytest_asyncio.fixture async def artifact_rate(): _artifact_rate = ArtifactOcrRate() yield _artifact_rate await _artifact_rate.close() # noinspection PyShadowingNames @pytest.mark.asyncio class TestArtifactOcrRate: @staticmethod @flaky(3, 1) async def test_rate_artifact(artifact_rate): artifact_attr = { 'name': '翠绿的猎人之冠', 'pos': '理之冠', 'star': 5, 'level': 20, 'main_item': {'type': 'cr', 'name': '暴击率', 'value': '31.1%'}, 'sub_item': [{'type': 'hp', 'name': '生命值', 'value': '9.3%'}, {'type': 'df', 'name': '防御力', 'value': '46'}, {'type': 'atk', 'name': '攻击力', 'value': '49'}, {'type': 'cd', 'name': '暴击伤害', 'value': '10.9%'}]} assert await artifact_rate.rate_artifact(artifact_attr) @staticmethod @flaky(3, 1) async def test_ocr_artifact(artifact_rate): async with aiofiles.open("tests/data/test_artifact.jpg", mode="rb") as f: photo = await f.read() data = await artifact_rate.get_artifact_attr(photo) LOGGER.info(data.text) assert data.status_code == 200