summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--etc/unittest/__main__.py1
-rw-r--r--etc/unittest/backend.py2
-rw-r--r--etc/unittest/integration.py33
-rw-r--r--etc/unittest/main.py12
-rw-r--r--g4f/Provider/Copilot.py1
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: