summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeiner Lohaus <hlohaus@users.noreply.github.com>2024-01-29 20:13:54 +0100
committerHeiner Lohaus <hlohaus@users.noreply.github.com>2024-01-29 20:13:54 +0100
commit770bdc54fc52a71ff56ec0e7f1a38adba01f0ae0 (patch)
treecabcbf5fa9a5dbf75a223377dbf032cfeb3e1027
parentAdd aiohttp_socks to requirements (diff)
downloadgpt4free-770bdc54fc52a71ff56ec0e7f1a38adba01f0ae0.tar
gpt4free-770bdc54fc52a71ff56ec0e7f1a38adba01f0ae0.tar.gz
gpt4free-770bdc54fc52a71ff56ec0e7f1a38adba01f0ae0.tar.bz2
gpt4free-770bdc54fc52a71ff56ec0e7f1a38adba01f0ae0.tar.lz
gpt4free-770bdc54fc52a71ff56ec0e7f1a38adba01f0ae0.tar.xz
gpt4free-770bdc54fc52a71ff56ec0e7f1a38adba01f0ae0.tar.zst
gpt4free-770bdc54fc52a71ff56ec0e7f1a38adba01f0ae0.zip
-rw-r--r--README.md24
-rw-r--r--etc/unittest/asyncio.py30
-rw-r--r--etc/unittest/main.py13
3 files changed, 41 insertions, 26 deletions
diff --git a/README.md b/README.md
index 9264d3fc..288f886f 100644
--- a/README.md
+++ b/README.md
@@ -103,25 +103,29 @@ Install all supported tools / all used packages:
```
pip install -U g4f[all]
```
-Install packages for uploading / generating images:
+Install required packages for the OpenaiChat provider:
```
-pip install -U g4f[image]
+pip install -U g4f[openai]
```
-Install the packages required for providers with webdriver:
+Install required packages for the interference api:
```
-pip install -U g4f[webdriver]
+pip install -U g4f[api]
```
-Install the packages required for the OpenaiChat provider:
+Install required packages for the web interface:
```
-pip install -U g4f[openai]
+pip install -U g4f[gui]
```
-Install the packages required for the interference api:
+Install required packages for uploading / generating images:
```
-pip install -U g4f[api]
+pip install -U g4f[image]
```
-Install the packages required for the web gui:
+Install required packages for providers with webdriver:
```
-pip install -U g4f[gui]
+pip install -U g4f[webdriver]
+```
+Install required packages for proxy support:
+```
+pip install -U aiohttp_socks
```
##### or:
diff --git a/etc/unittest/asyncio.py b/etc/unittest/asyncio.py
index a31ce211..e886c43a 100644
--- a/etc/unittest/asyncio.py
+++ b/etc/unittest/asyncio.py
@@ -1,4 +1,3 @@
-from .include import DEFAULT_MESSAGES
import asyncio
try:
import nest_asyncio
@@ -6,55 +5,60 @@ try:
except:
has_nest_asyncio = False
import unittest
+
import g4f
from g4f import ChatCompletion
from .mocks import ProviderMock, AsyncProviderMock, AsyncGeneratorProviderMock
-
+
+DEFAULT_MESSAGES = [{'role': 'user', 'content': 'Hello'}]
+
class TestChatCompletion(unittest.TestCase):
-
+
async def run_exception(self):
return ChatCompletion.create(g4f.models.default, DEFAULT_MESSAGES, AsyncProviderMock)
-
+
def test_exception(self):
+ if hasattr(asyncio, '_nest_patched'):
+ self.skipTest('asyncio is already patched')
self.assertRaises(g4f.errors.NestAsyncioError, asyncio.run, self.run_exception())
def test_create(self):
result = ChatCompletion.create(g4f.models.default, DEFAULT_MESSAGES, AsyncProviderMock)
self.assertEqual("Mock",result)
-
+
def test_create_generator(self):
result = ChatCompletion.create(g4f.models.default, DEFAULT_MESSAGES, AsyncGeneratorProviderMock)
self.assertEqual("Mock",result)
class TestChatCompletionAsync(unittest.IsolatedAsyncioTestCase):
-
+
async def test_base(self):
result = await ChatCompletion.create_async(g4f.models.default, DEFAULT_MESSAGES, ProviderMock)
self.assertEqual("Mock",result)
-
+
async def test_async(self):
result = await ChatCompletion.create_async(g4f.models.default, DEFAULT_MESSAGES, AsyncProviderMock)
self.assertEqual("Mock",result)
-
+
async def test_create_generator(self):
result = await ChatCompletion.create_async(g4f.models.default, DEFAULT_MESSAGES, AsyncGeneratorProviderMock)
self.assertEqual("Mock",result)
-
+
class TestChatCompletionNestAsync(unittest.IsolatedAsyncioTestCase):
-
+
def setUp(self) -> None:
if not has_nest_asyncio:
self.skipTest('"nest_asyncio" not installed')
nest_asyncio.apply()
-
+
async def test_create(self):
result = await ChatCompletion.create_async(g4f.models.default, DEFAULT_MESSAGES, ProviderMock)
self.assertEqual("Mock",result)
-
+
async def test_nested(self):
result = ChatCompletion.create(g4f.models.default, DEFAULT_MESSAGES, AsyncProviderMock)
self.assertEqual("Mock",result)
-
+
async def test_nested_generator(self):
result = ChatCompletion.create(g4f.models.default, DEFAULT_MESSAGES, AsyncGeneratorProviderMock)
self.assertEqual("Mock",result)
diff --git a/etc/unittest/main.py b/etc/unittest/main.py
index f5eb5138..cc3c6a18 100644
--- a/etc/unittest/main.py
+++ b/etc/unittest/main.py
@@ -24,12 +24,19 @@ class TestGetLastProvider(unittest.TestCase):
def test_get_last_provider(self):
ChatCompletion.create(g4f.models.default, DEFAULT_MESSAGES, ProviderMock)
self.assertEqual(get_last_provider(), ProviderMock)
-
+
def test_get_last_provider_retry(self):
ChatCompletion.create(g4f.models.default, DEFAULT_MESSAGES, RetryProvider([ProviderMock]))
self.assertEqual(get_last_provider(), ProviderMock)
-
+
def test_get_last_provider_async(self):
coroutine = ChatCompletion.create_async(g4f.models.default, DEFAULT_MESSAGES, ProviderMock)
asyncio.run(coroutine)
- self.assertEqual(get_last_provider(), ProviderMock) \ No newline at end of file
+ self.assertEqual(get_last_provider(), ProviderMock)
+
+ def test_get_last_provider_as_dict(self):
+ ChatCompletion.create(g4f.models.default, DEFAULT_MESSAGES, ProviderMock)
+ last_provider_dict = get_last_provider(True)
+ self.assertIsInstance(last_provider_dict, dict)
+ self.assertIn('name', last_provider_dict)
+ self.assertEqual(ProviderMock.__name__, last_provider_dict['name']) \ No newline at end of file