diff options
author | H Lohaus <hlohaus@users.noreply.github.com> | 2024-01-14 15:32:51 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-14 15:32:51 +0100 |
commit | 1ca80ed48b55d6462b4bd445e66d4f7de7442c2b (patch) | |
tree | 05a94b53b83461b8249de965e093b4fd3722e2d1 /etc/unittest/main.py | |
parent | Merge pull request #1466 from hlohaus/upp (diff) | |
parent | Change doctypes style to Google (diff) | |
download | gpt4free-1ca80ed48b55d6462b4bd445e66d4f7de7442c2b.tar gpt4free-1ca80ed48b55d6462b4bd445e66d4f7de7442c2b.tar.gz gpt4free-1ca80ed48b55d6462b4bd445e66d4f7de7442c2b.tar.bz2 gpt4free-1ca80ed48b55d6462b4bd445e66d4f7de7442c2b.tar.lz gpt4free-1ca80ed48b55d6462b4bd445e66d4f7de7442c2b.tar.xz gpt4free-1ca80ed48b55d6462b4bd445e66d4f7de7442c2b.tar.zst gpt4free-1ca80ed48b55d6462b4bd445e66d4f7de7442c2b.zip |
Diffstat (limited to 'etc/unittest/main.py')
-rw-r--r-- | etc/unittest/main.py | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/etc/unittest/main.py b/etc/unittest/main.py new file mode 100644 index 00000000..61f4ffda --- /dev/null +++ b/etc/unittest/main.py @@ -0,0 +1,73 @@ +import sys +import pathlib +import unittest +from unittest.mock import MagicMock + +sys.path.append(str(pathlib.Path(__file__).parent.parent.parent)) + +import g4f +from g4f import ChatCompletion, get_last_provider +from g4f.gui.server.backend import Backend_Api, get_error_message +from g4f.base_provider import BaseProvider + +g4f.debug.logging = False + +class MockProvider(BaseProvider): + working = True + + def create_completion( + model, messages, stream, **kwargs + ): + yield "Mock" + + async def create_async( + model, messages, **kwargs + ): + return "Mock" + +class TestBackendApi(unittest.TestCase): + + def setUp(self): + self.app = MagicMock() + self.api = Backend_Api(self.app) + + def test_version(self): + response = self.api.get_version() + self.assertIn("version", response) + self.assertIn("latest_version", response) + +class TestChatCompletion(unittest.TestCase): + + def test_create(self): + messages = [{'role': 'user', 'content': 'Hello'}] + result = ChatCompletion.create(g4f.models.default, messages) + self.assertTrue("Hello" in result or "Good" in result) + + def test_get_last_provider(self): + messages = [{'role': 'user', 'content': 'Hello'}] + ChatCompletion.create(g4f.models.default, messages, MockProvider) + self.assertEqual(get_last_provider(), MockProvider) + + def test_bing_provider(self): + messages = [{'role': 'user', 'content': 'Hello'}] + provider = g4f.Provider.Bing + result = ChatCompletion.create(g4f.models.default, messages, provider) + self.assertTrue("Bing" in result) + +class TestChatCompletionAsync(unittest.IsolatedAsyncioTestCase): + + async def test_async(self): + messages = [{'role': 'user', 'content': 'Hello'}] + result = await ChatCompletion.create_async(g4f.models.default, messages, MockProvider) + self.assertTrue("Mock" in result) + +class TestUtilityFunctions(unittest.TestCase): + + def test_get_error_message(self): + g4f.debug.last_provider = g4f.Provider.Bing + exception = Exception("Message") + result = get_error_message(exception) + self.assertEqual("Bing: Exception: Message", result) + +if __name__ == '__main__': + unittest.main()
\ No newline at end of file |