XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 1
返回提交历史

XFEstudio/gpt4free

Improve readme / unittests

770bdc54
Heiner Lohaus <hlohaus@users.noreply.github.com>
提交于

代码差异

3 个文件 +41 -26
Modified README.md +14 -10
@@ -103,25 +103,29 @@ Install all supported tools / all used packages:
103 103 ```
104 104 pip install -U g4f[all]
105 105 ```
106 Install packages for uploading / generating images:
106 Install required packages for the OpenaiChat provider:
107 107 ```
108 pip install -U g4f[image]
108 pip install -U g4f[openai]
109 109 ```
110 Install the packages required for providers with webdriver:
110 Install required packages for the interference api:
111 111 ```
112 pip install -U g4f[webdriver]
112 pip install -U g4f[api]
113 113 ```
114 Install the packages required for the OpenaiChat provider:
114 Install required packages for the web interface:
115 115 ```
116 pip install -U g4f[openai]
116 pip install -U g4f[gui]
117 117 ```
118 Install the packages required for the interference api:
118 Install required packages for uploading / generating images:
119 119 ```
120 pip install -U g4f[api]
120 pip install -U g4f[image]
121 121 ```
122 Install the packages required for the web gui:
122 Install required packages for providers with webdriver:
123 123 ```
124 pip install -U g4f[gui]
124 pip install -U g4f[webdriver]
125 ```
126 Install required packages for proxy support:
127 ```
128 pip install -U aiohttp_socks
125 129 ```
126 130
127 131 ##### or:
Modified etc/unittest/asyncio.py +17 -13
@@ -1,4 +1,3 @@
1 from .include import DEFAULT_MESSAGES
2 1 import asyncio
3 2 try:
4 3 import nest_asyncio
@@ -6,55 +5,60 @@ try:
6 5 except:
7 6 has_nest_asyncio = False
8 7 import unittest
8
9 9 import g4f
10 10 from g4f import ChatCompletion
11 11 from .mocks import ProviderMock, AsyncProviderMock, AsyncGeneratorProviderMock
12
12
13 DEFAULT_MESSAGES = [{'role': 'user', 'content': 'Hello'}]
14
13 15 class TestChatCompletion(unittest.TestCase):
14
16
15 17 async def run_exception(self):
16 18 return ChatCompletion.create(g4f.models.default, DEFAULT_MESSAGES, AsyncProviderMock)
17
19
18 20 def test_exception(self):
21 if hasattr(asyncio, '_nest_patched'):
22 self.skipTest('asyncio is already patched')
19 23 self.assertRaises(g4f.errors.NestAsyncioError, asyncio.run, self.run_exception())
20 24
21 25 def test_create(self):
22 26 result = ChatCompletion.create(g4f.models.default, DEFAULT_MESSAGES, AsyncProviderMock)
23 27 self.assertEqual("Mock",result)
24
28
25 29 def test_create_generator(self):
26 30 result = ChatCompletion.create(g4f.models.default, DEFAULT_MESSAGES, AsyncGeneratorProviderMock)
27 31 self.assertEqual("Mock",result)
28 32
29 33 class TestChatCompletionAsync(unittest.IsolatedAsyncioTestCase):
30
34
31 35 async def test_base(self):
32 36 result = await ChatCompletion.create_async(g4f.models.default, DEFAULT_MESSAGES, ProviderMock)
33 37 self.assertEqual("Mock",result)
34
38
35 39 async def test_async(self):
36 40 result = await ChatCompletion.create_async(g4f.models.default, DEFAULT_MESSAGES, AsyncProviderMock)
37 41 self.assertEqual("Mock",result)
38
42
39 43 async def test_create_generator(self):
40 44 result = await ChatCompletion.create_async(g4f.models.default, DEFAULT_MESSAGES, AsyncGeneratorProviderMock)
41 45 self.assertEqual("Mock",result)
42
46
43 47 class TestChatCompletionNestAsync(unittest.IsolatedAsyncioTestCase):
44
48
45 49 def setUp(self) -> None:
46 50 if not has_nest_asyncio:
47 51 self.skipTest('"nest_asyncio" not installed')
48 52 nest_asyncio.apply()
49
53
50 54 async def test_create(self):
51 55 result = await ChatCompletion.create_async(g4f.models.default, DEFAULT_MESSAGES, ProviderMock)
52 56 self.assertEqual("Mock",result)
53
57
54 58 async def test_nested(self):
55 59 result = ChatCompletion.create(g4f.models.default, DEFAULT_MESSAGES, AsyncProviderMock)
56 60 self.assertEqual("Mock",result)
57
61
58 62 async def test_nested_generator(self):
59 63 result = ChatCompletion.create(g4f.models.default, DEFAULT_MESSAGES, AsyncGeneratorProviderMock)
60 64 self.assertEqual("Mock",result)
Modified etc/unittest/main.py +10 -3
@@ -24,12 +24,19 @@ class TestGetLastProvider(unittest.TestCase):
24 24 def test_get_last_provider(self):
25 25 ChatCompletion.create(g4f.models.default, DEFAULT_MESSAGES, ProviderMock)
26 26 self.assertEqual(get_last_provider(), ProviderMock)
27
27
28 28 def test_get_last_provider_retry(self):
29 29 ChatCompletion.create(g4f.models.default, DEFAULT_MESSAGES, RetryProvider([ProviderMock]))
30 30 self.assertEqual(get_last_provider(), ProviderMock)
31
31
32 32 def test_get_last_provider_async(self):
33 33 coroutine = ChatCompletion.create_async(g4f.models.default, DEFAULT_MESSAGES, ProviderMock)
34 34 asyncio.run(coroutine)
35 self.assertEqual(get_last_provider(), ProviderMock)
35 self.assertEqual(get_last_provider(), ProviderMock)
36
37 def test_get_last_provider_as_dict(self):
38 ChatCompletion.create(g4f.models.default, DEFAULT_MESSAGES, ProviderMock)
39 last_provider_dict = get_last_provider(True)
40 self.assertIsInstance(last_provider_dict, dict)
41 self.assertIn('name', last_provider_dict)
42 self.assertEqual(ProviderMock.__name__, last_provider_dict['name'])