1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 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()
|