mirror of
https://github.com/xtekky/gpt4free.git
synced 2025-12-06 02:30:41 -08:00
* IterListProvider support for generating images * Add missing get_har_files import in Copilot * Fix typo in dall-e-3 model name * Add image client unittests * Add MicrosoftDesigner provider * Import MicrosoftDesigner and add it to the model list
44 lines
No EOL
1.9 KiB
Python
44 lines
No EOL
1.9 KiB
Python
from __future__ import annotations
|
|
|
|
import asyncio
|
|
import unittest
|
|
|
|
from g4f.client import AsyncClient, ImagesResponse
|
|
from g4f.providers.retry_provider import IterListProvider
|
|
from .mocks import (
|
|
YieldImageResponseProviderMock,
|
|
MissingAuthProviderMock,
|
|
AsyncRaiseExceptionProviderMock,
|
|
YieldNoneProviderMock
|
|
)
|
|
|
|
DEFAULT_MESSAGES = [{'role': 'user', 'content': 'Hello'}]
|
|
|
|
class TestIterListProvider(unittest.IsolatedAsyncioTestCase):
|
|
|
|
async def test_skip_provider(self):
|
|
client = AsyncClient(image_provider=IterListProvider([MissingAuthProviderMock, YieldImageResponseProviderMock], False))
|
|
response = await client.images.generate("Hello", "", response_format="orginal")
|
|
self.assertIsInstance(response, ImagesResponse)
|
|
self.assertEqual("Hello", response.data[0].url)
|
|
|
|
async def test_only_one_result(self):
|
|
client = AsyncClient(image_provider=IterListProvider([YieldImageResponseProviderMock, YieldImageResponseProviderMock], False))
|
|
response = await client.images.generate("Hello", "", response_format="orginal")
|
|
self.assertIsInstance(response, ImagesResponse)
|
|
self.assertEqual("Hello", response.data[0].url)
|
|
|
|
async def test_skip_none(self):
|
|
client = AsyncClient(image_provider=IterListProvider([YieldNoneProviderMock, YieldImageResponseProviderMock], False))
|
|
response = await client.images.generate("Hello", "", response_format="orginal")
|
|
self.assertIsInstance(response, ImagesResponse)
|
|
self.assertEqual("Hello", response.data[0].url)
|
|
|
|
def test_raise_exception(self):
|
|
async def run_exception():
|
|
client = AsyncClient(image_provider=IterListProvider([YieldNoneProviderMock, AsyncRaiseExceptionProviderMock], False))
|
|
await client.images.generate("Hello", "")
|
|
self.assertRaises(RuntimeError, asyncio.run, run_exception())
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main() |