diff options
Diffstat (limited to 'etc')
-rw-r--r-- | etc/unittest/__main__.py | 1 | ||||
-rw-r--r-- | etc/unittest/asyncio.py | 4 | ||||
-rw-r--r-- | etc/unittest/integration.py | 34 |
3 files changed, 37 insertions, 2 deletions
diff --git a/etc/unittest/__main__.py b/etc/unittest/__main__.py index 06b2dff5..3a459dba 100644 --- a/etc/unittest/__main__.py +++ b/etc/unittest/__main__.py @@ -5,5 +5,6 @@ from .main import * from .model import * from .client import * from .include import * +from .integration import * unittest.main()
\ No newline at end of file diff --git a/etc/unittest/asyncio.py b/etc/unittest/asyncio.py index 57a1fb7d..8931b79a 100644 --- a/etc/unittest/asyncio.py +++ b/etc/unittest/asyncio.py @@ -19,8 +19,8 @@ class TestChatCompletion(unittest.TestCase): return ChatCompletion.create(g4f.models.default, DEFAULT_MESSAGES, AsyncProviderMock) def test_exception(self): - if hasattr(asyncio, '_nest_patched'): - self.skipTest('asyncio is already patched') + if has_nest_asyncio: + self.skipTest('has nest_asyncio') self.assertRaises(g4f.errors.NestAsyncioError, asyncio.run, self.run_exception()) def test_create(self): diff --git a/etc/unittest/integration.py b/etc/unittest/integration.py new file mode 100644 index 00000000..36f09c0e --- /dev/null +++ b/etc/unittest/integration.py @@ -0,0 +1,34 @@ +import unittest +import json + +try: + import nest_asyncio + has_nest_asyncio = True +except: + has_nest_asyncio = False + +from g4f.client import Client, ChatCompletion +from g4f.Provider import Bing, OpenaiChat + +DEFAULT_MESSAGES = [{"role": "system", "content": 'Response in json, Example: {"success: True"}'}, + {"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): + client = Client(provider=Bing) + 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): + client = Client(provider=OpenaiChat) + 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)) + +if __name__ == '__main__': + unittest.main()
\ No newline at end of file |