From 1e0dac87360c98dba5c64aef6cd424d88ae231bd Mon Sep 17 00:00:00 2001 From: 100gle Date: Sun, 1 Oct 2023 13:16:06 +0800 Subject: [PATCH] fix: integrate mock for `OpenAIParser` for testing --- backend/src/test/test_openai.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/backend/src/test/test_openai.py b/backend/src/test/test_openai.py index e6940979..c257d7b2 100644 --- a/backend/src/test/test_openai.py +++ b/backend/src/test/test_openai.py @@ -1,5 +1,6 @@ import json import os +from unittest import mock from dotenv import load_dotenv from module.parser.openai import OpenAIParser @@ -10,13 +11,14 @@ load_dotenv() class TestOpenAIParser: @classmethod def setup_class(cls): - api_key = os.getenv("OPENAI_API_KEY") - cls.parser = OpenAIParser(api_key=api_key) + api_key = os.getenv("OPENAI_API_KEY") or "testing!" + cls.mocker = mock.Mock() + with mock.patch.object(OpenAIParser, "parse", new_callable=cls.mocker): + cls.parser = OpenAIParser(api_key=api_key) def test_parse(self): text = "[梦蓝字幕组]New Doraemon 哆啦A梦新番[747][2023.02.25][AVC][1080P][GB_JP][MP4]" - result = self.parser.parse(text=text, asdict=False) - assert json.loads(result) == { + expected = { "group": "梦蓝字幕组", "title_en": "New Doraemon", "resolution": "1080P", @@ -28,3 +30,7 @@ class TestOpenAIParser: "season_raw": "2023.02.25", "source": "AVC", } + self.mocker.return_value = expected + + result = self.parser.parse(text=text, asdict=False) + assert json.loads(result) == expected