From 2fe43166cc4ab4d05261c3fe9690a49284c90570 Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Mon, 18 Nov 2024 18:23:16 +0100 Subject: Update unittests --- etc/unittest/__main__.py | 1 - etc/unittest/backend.py | 2 +- etc/unittest/integration.py | 33 ++++++++++++++++++--------------- etc/unittest/main.py | 12 ------------ g4f/Provider/Copilot.py | 1 + 5 files changed, 20 insertions(+), 29 deletions(-) diff --git a/etc/unittest/__main__.py b/etc/unittest/__main__.py index f8a73280..0acc5865 100644 --- a/etc/unittest/__main__.py +++ b/etc/unittest/__main__.py @@ -6,6 +6,5 @@ from .main import * from .model import * from .client import * from .include import * -from .integration import * unittest.main() diff --git a/etc/unittest/backend.py b/etc/unittest/backend.py index e781de8a..a90bf253 100644 --- a/etc/unittest/backend.py +++ b/etc/unittest/backend.py @@ -46,4 +46,4 @@ class TestBackendApi(unittest.TestCase): self.skipTest(e) except MissingRequirementsError: self.skipTest("search is not installed") - self.assertEqual(4, len(result)) + self.assertTrue(len(result) >= 4) diff --git a/etc/unittest/integration.py b/etc/unittest/integration.py index af7494e2..8ad00990 100644 --- a/etc/unittest/integration.py +++ b/etc/unittest/integration.py @@ -1,36 +1,39 @@ import unittest import json -try: - import nest_asyncio - has_nest_asyncio = True -except ImportError: - has_nest_asyncio = False - -from g4f.client import Client, ChatCompletion -from g4f.Provider import Bing, OpenaiChat +from g4f.client import Client, AsyncClient, ChatCompletion +from g4f.Provider import Copilot, DDG DEFAULT_MESSAGES = [{"role": "system", "content": 'Response in json, Example: {"success": false}'}, {"role": "user", "content": "Say success true in json"}] class TestProviderIntegration(unittest.TestCase): - def setUp(self): - if not has_nest_asyncio: - self.skipTest("nest_asyncio is not installed") def test_bing(self): - self.skipTest("Not working") - client = Client(provider=Bing) + client = Client(provider=Copilot) response = client.chat.completions.create(DEFAULT_MESSAGES, "", response_format={"type": "json_object"}) self.assertIsInstance(response, ChatCompletion) self.assertIn("success", json.loads(response.choices[0].message.content)) def test_openai(self): - self.skipTest("not working in this network") - client = Client(provider=OpenaiChat) + client = Client(provider=DDG) response = client.chat.completions.create(DEFAULT_MESSAGES, "", response_format={"type": "json_object"}) self.assertIsInstance(response, ChatCompletion) self.assertIn("success", json.loads(response.choices[0].message.content)) +class TestChatCompletionAsync(unittest.IsolatedAsyncioTestCase): + + async def test_bing(self): + client = AsyncClient(provider=Copilot) + response = await client.chat.completions.create(DEFAULT_MESSAGES, "", response_format={"type": "json_object"}) + self.assertIsInstance(response, ChatCompletion) + self.assertIn("success", json.loads(response.choices[0].message.content)) + + async def test_openai(self): + client = AsyncClient(provider=DDG) + response = await client.chat.completions.create(DEFAULT_MESSAGES, "", response_format={"type": "json_object"}) + self.assertIsInstance(response, ChatCompletion) + self.assertIn("success", json.loads(response.choices[0].message.content)) + if __name__ == '__main__': unittest.main() \ No newline at end of file diff --git a/etc/unittest/main.py b/etc/unittest/main.py index cc3c6a18..a3949216 100644 --- a/etc/unittest/main.py +++ b/etc/unittest/main.py @@ -7,18 +7,6 @@ from .mocks import ProviderMock DEFAULT_MESSAGES = [{'role': 'user', 'content': 'Hello'}] -class NoTestChatCompletion(unittest.TestCase): - - def no_test_create_default(self): - result = ChatCompletion.create(g4f.models.default, DEFAULT_MESSAGES) - if "Good" not in result and "Hi" not in result: - self.assertIn("Hello", result) - - def no_test_bing_provider(self): - provider = g4f.Provider.Bing - result = ChatCompletion.create(g4f.models.default, DEFAULT_MESSAGES, provider) - self.assertIn("Bing", result) - class TestGetLastProvider(unittest.TestCase): def test_get_last_provider(self): diff --git a/g4f/Provider/Copilot.py b/g4f/Provider/Copilot.py index 0d8b612b..f10202bf 100644 --- a/g4f/Provider/Copilot.py +++ b/g4f/Provider/Copilot.py @@ -64,6 +64,7 @@ class Copilot(AbstractProvider): websocket_url = cls.websocket_url access_token = None + headers = None cookies = conversation.cookie_jar if conversation is not None else None if cls.needs_auth: if conversation is None or conversation.access_token is None: -- cgit v1.2.3