diff --git a/tests/metagpt/tools/functions/libs/test_vision.py b/tests/metagpt/tools/functions/libs/test_vision.py new file mode 100644 index 000000000..f4f97c46a --- /dev/null +++ b/tests/metagpt/tools/functions/libs/test_vision.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +@Time : 2024/01/15 +@Author : mannaandpoem +@File : test_vision.py +""" +import pytest + +from metagpt import logs +from metagpt.tools.functions.libs.vision import Vision + + +@pytest.fixture +def mock_webpages(): + return """```html\n\n +\n\n```\n +```css\n.class { ... }\n```\n +```javascript\nfunction() { ... }\n```\n""" + + +def test_vision_generate_webpages(mocker, mock_webpages): + mocker.patch( + "metagpt.tools.functions.libs.vision.Vision.generate_web_pages", + return_value=mock_webpages + ) + image_path = "image.png" + vision = Vision() + rsp = vision.generate_web_pages(image_path=image_path) + logs.logger.info(rsp) + assert "html" in rsp + assert "css" in rsp + assert "javascript" in rsp + + +def test_save_webpages(mocker, mock_webpages): + mocker.patch( + "metagpt.tools.functions.libs.vision.Vision.generate_web_pages", + return_value=mock_webpages + ) + image_path = "image.png" + vision = Vision() + webpages = vision.generate_web_pages(image_path) + webpages_dir = vision.save_webpages(image_path=image_path, webpages=webpages) + logs.logger.info(webpages_dir) + assert webpages_dir.exists() + + diff --git a/tests/metagpt/tools/functions/test_vision.py b/tests/metagpt/tools/functions/test_vision.py deleted file mode 100644 index 0359f14f1..000000000 --- a/tests/metagpt/tools/functions/test_vision.py +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -""" -@Time : 2024/01/15 -@Author : mannaandpoem -@File : test_vision.py -""" -import base64 -from unittest.mock import AsyncMock - -from pytest_mock import mocker - -from metagpt import logs -from metagpt.tools.functions.libs.vision import Vision - - -def test_vision_generate_web_pages(): - image_path = "./image.png" - vision = Vision() - rsp = vision.generate_web_pages(image_path=image_path) - logs.logger.info(rsp) - assert "html" in rsp - assert "css" in rsp - assert "javascript" in rsp - - -def test_save_webpages(): - image_path = "./image.png" - vision = Vision() - webpages = """```html: \n - \n``` - "```css: .class { ... } ```\n ```javascript: function() { ... }```""" - webpages_dir = vision.save_webpages(image_path=image_path, webpages=webpages) - logs.logger.info(webpages_dir) - assert webpages_dir.exists() - assert (webpages_dir / "index.html").exists() - assert (webpages_dir / "style.css").exists() or (webpages_dir / "styles.css").exists() - assert (webpages_dir / "script.js").exists() or (webpages_dir / "scripts.js").exists() - -