summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorHeiner Lohaus <hlohaus@users.noreply.github.com>2024-01-14 15:04:37 +0100
committerHeiner Lohaus <hlohaus@users.noreply.github.com>2024-01-14 15:04:37 +0100
commit32252def150da94f12d1f3c07f977af6d8931402 (patch)
tree05a94b53b83461b8249de965e093b4fd3722e2d1 /etc
parentRefactor code with AI (diff)
downloadgpt4free-32252def150da94f12d1f3c07f977af6d8931402.tar
gpt4free-32252def150da94f12d1f3c07f977af6d8931402.tar.gz
gpt4free-32252def150da94f12d1f3c07f977af6d8931402.tar.bz2
gpt4free-32252def150da94f12d1f3c07f977af6d8931402.tar.lz
gpt4free-32252def150da94f12d1f3c07f977af6d8931402.tar.xz
gpt4free-32252def150da94f12d1f3c07f977af6d8931402.tar.zst
gpt4free-32252def150da94f12d1f3c07f977af6d8931402.zip
Diffstat (limited to 'etc')
-rw-r--r--etc/unittest/main.py73
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