From 42a4727c7e9729367aa6fad0a0b9327df72a8aa1 Mon Sep 17 00:00:00 2001 From: felinae98 <731499577@qq.com> Date: Mon, 21 Mar 2022 16:20:20 +0800 Subject: [PATCH] remove browser in ci --- .circleci/main.yml | 6 +- tests/platforms/static/arknights-detail-807 | 24 +++++ tests/platforms/static/arknights_list_-1.json | 91 +++++++++++++++++++ tests/platforms/test_arknights.py | 60 ++++++++++++ 4 files changed, 178 insertions(+), 3 deletions(-) create mode 100644 tests/platforms/static/arknights-detail-807 create mode 100644 tests/platforms/static/arknights_list_-1.json diff --git a/.circleci/main.yml b/.circleci/main.yml index 0e5e293..fa7e421 100644 --- a/.circleci/main.yml +++ b/.circleci/main.yml @@ -159,9 +159,9 @@ jobs: # - run: sed -e '41,45d' -i pyproject.toml - python/install-packages: pkg-manager: poetry - - run: - name: Install browser - command: poetry run playwright install-deps && poetry run playwright install chromium + # - run: + # name: Install browser + # command: poetry run playwright install-deps && poetry run playwright install chromium - run: name: Coverage test command: poetry run pytest --cov-report html --cov-report xml --cov=./src/plugins/nonebot_bison --junitxml=test-results/junit.xml diff --git a/tests/platforms/static/arknights-detail-807 b/tests/platforms/static/arknights-detail-807 new file mode 100644 index 0000000..5ae6e2e --- /dev/null +++ b/tests/platforms/static/arknights-detail-807 @@ -0,0 +1,24 @@ + + + + + + + + + + 公告 + + + +
+
+ +
+
+ + diff --git a/tests/platforms/static/arknights_list_-1.json b/tests/platforms/static/arknights_list_-1.json new file mode 100644 index 0000000..c149349 --- /dev/null +++ b/tests/platforms/static/arknights_list_-1.json @@ -0,0 +1,91 @@ +{ + "focusAnnounceId": "816", + "announceList": [ + { + "announceId": "809", + "title": "冰原信使系列\n新装限时上架", + "isWebUrl": true, + "webUrl": "https://ak.hycdn.cn/announce/IOS/announcement/809_1640060505.html", + "day": 21, + "month": 12, + "group": "ACTIVITY" + }, + { + "announceId": "810", + "title": "寒武纪系列\n限时复刻上架", + "isWebUrl": true, + "webUrl": "https://ak.hycdn.cn/announce/IOS/announcement/810_1640060511.html", + "day": 21, + "month": 12, + "group": "ACTIVITY" + }, + { + "announceId": "806", + "title": "跨年欢庆·回首\n限时寻访说明", + "isWebUrl": true, + "webUrl": "https://ak.hycdn.cn/announce/IOS/announcement/806_1639379808.html", + "day": 14, + "month": 12, + "group": "ACTIVITY" + }, + { + "announceId": "802", + "title": "「制作组通讯」\n#15期", + "isWebUrl": true, + "webUrl": "https://ak.hycdn.cn/announce/IOS/announcement/802_1638871766.html", + "day": 8, + "month": 12, + "group": "SYSTEM" + }, + { + "announceId": "97", + "title": "新人寻访特惠\n必得六星干员", + "isWebUrl": true, + "webUrl": "https://ak.hycdn.cn/announce/IOS/announcement/97_1606379786.html", + "day": 30, + "month": 4, + "group": "ACTIVITY" + }, + { + "announceId": "95", + "title": "通关特定关卡\n赠送专属时装", + "isWebUrl": true, + "webUrl": "https://ak.hycdn.cn/announce/IOS/announcement/95_1606379781.html", + "day": 30, + "month": 4, + "group": "ACTIVITY" + }, + { + "announceId": "192", + "title": "《明日方舟》\n公测开启说明", + "isWebUrl": true, + "webUrl": "https://ak.hycdn.cn/announce/IOS/announcement/192_1606379744.html", + "day": 30, + "month": 4, + "group": "SYSTEM" + }, + { + "announceId": "98", + "title": "《明日方舟》\n公平运营申明", + "isWebUrl": true, + "webUrl": "https://ak.hycdn.cn/announce/IOS/announcement/98_1638970453.html", + "day": 30, + "month": 4, + "group": "SYSTEM" + }, + { + "announceId": "94", + "title": "常驻活动介绍", + "isWebUrl": true, + "webUrl": "https://ak.hycdn.cn/announce/IOS/announcement/94_1606379757.html", + "day": 30, + "month": 4, + "group": "ACTIVITY" + } + ], + "extra": { + "enable": false, + "name": "额外活动" + } +} + diff --git a/tests/platforms/test_arknights.py b/tests/platforms/test_arknights.py index cd55501..7b3f386 100644 --- a/tests/platforms/test_arknights.py +++ b/tests/platforms/test_arknights.py @@ -18,6 +18,11 @@ def arknights_list_0(): return get_json("arknights_list_0.json") +@pytest.fixture(scope="module") +def arknights_list__1(): + return get_json("arknights_list_-1.json") + + @pytest.fixture(scope="module") def arknights_list_1(): return get_json("arknights_list_1.json") @@ -36,6 +41,61 @@ def monster_siren_list_1(): @pytest.mark.asyncio @respx.mock async def test_fetch_new( + arknights, + dummy_user_subinfo, + arknights_list_0, + arknights_list__1, + monster_siren_list_0, + monster_siren_list_1, +): + ak_list_router = respx.get( + "https://ak-conf.hypergryph.com/config/prod/announce_meta/IOS/announcement.meta.json" + ) + detail_router = respx.get( + "https://ak.hycdn.cn/announce/IOS/announcement/807_1640060583.html" + ) + version_router = respx.get( + "https://ak-conf.hypergryph.com/config/prod/official/IOS/version" + ) + preannouncement_router = respx.get( + "https://ak-conf.hypergryph.com/config/prod/announce_meta/IOS/preannouncement.meta.json" + ) + monster_siren_router = respx.get("https://monster-siren.hypergryph.com/api/news") + ak_list_router.mock(return_value=Response(200, json=arknights_list__1)) + detail_router.mock( + return_value=Response(200, text=get_file("arknights-detail-807")) + ) + version_router.mock( + return_value=Response(200, json=get_json("arknights-version-0.json")) + ) + preannouncement_router.mock( + return_value=Response(200, json=get_json("arknights-pre-0.json")) + ) + monster_siren_router.mock(return_value=Response(200, json=monster_siren_list_0)) + target = "" + res = await arknights.fetch_new_post(target, [dummy_user_subinfo]) + assert ak_list_router.called + assert len(res) == 0 + assert not detail_router.called + mock_data = arknights_list_0 + ak_list_router.mock(return_value=Response(200, json=mock_data)) + res3 = await arknights.fetch_new_post(target, [dummy_user_subinfo]) + assert len(res3[0][1]) == 1 + assert detail_router.called + post = res3[0][1][0] + assert post.target_type == "arknights" + assert post.text == "" + assert post.url == "" + assert post.target_name == "明日方舟游戏内公告" + assert len(post.pics) == 1 + # assert(post.pics == ['https://ak-fs.hypergryph.com/announce/images/20210623/e6f49aeb9547a2278678368a43b95b07.jpg']) + print(res3[0][1]) + r = await post.generate_messages() + + +@pytest.mark.render +@respx.mock +async def test_send_with_render( arknights, dummy_user_subinfo, arknights_list_0,