diff options
author | Heiner Lohaus <hlohaus@users.noreply.github.com> | 2024-04-06 01:18:45 +0200 |
---|---|---|
committer | Heiner Lohaus <hlohaus@users.noreply.github.com> | 2024-04-06 01:18:45 +0200 |
commit | a4ca5773bd9602951af0ccc11f7e219dfb93732a (patch) | |
tree | 60beaccf6b583663d75f9381cfc0395e4b1d3be6 | |
parent | Add Groq and Openai interfaces, Add integration tests (diff) | |
download | gpt4free-a4ca5773bd9602951af0ccc11f7e219dfb93732a.tar gpt4free-a4ca5773bd9602951af0ccc11f7e219dfb93732a.tar.gz gpt4free-a4ca5773bd9602951af0ccc11f7e219dfb93732a.tar.bz2 gpt4free-a4ca5773bd9602951af0ccc11f7e219dfb93732a.tar.lz gpt4free-a4ca5773bd9602951af0ccc11f7e219dfb93732a.tar.xz gpt4free-a4ca5773bd9602951af0ccc11f7e219dfb93732a.tar.zst gpt4free-a4ca5773bd9602951af0ccc11f7e219dfb93732a.zip |
-rw-r--r-- | etc/unittest/asyncio.py | 4 | ||||
-rw-r--r-- | etc/unittest/integration.py | 9 | ||||
-rw-r--r-- | g4f/errors.py | 6 | ||||
-rw-r--r-- | g4f/providers/base_provider.py | 4 |
4 files changed, 16 insertions, 7 deletions
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 index 808a8d1d..36f09c0e 100644 --- a/etc/unittest/integration.py +++ b/etc/unittest/integration.py @@ -1,6 +1,12 @@ 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 @@ -8,6 +14,9 @@ DEFAULT_MESSAGES = [{"role": "system", "content": 'Response in json, Example: {" {"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) diff --git a/g4f/errors.py b/g4f/errors.py index 6cb5d177..3d553ba6 100644 --- a/g4f/errors.py +++ b/g4f/errors.py @@ -22,15 +22,15 @@ class RetryNoProviderError(Exception): class VersionNotFoundError(Exception): ... -class NestAsyncioError(Exception): - ... - class ModelNotSupportedError(Exception): ... class MissingRequirementsError(Exception): ... +class NestAsyncioError(MissingRequirementsError): + ... + class MissingAuthError(Exception): ... diff --git a/g4f/providers/base_provider.py b/g4f/providers/base_provider.py index 37f4af15..f3483fc2 100644 --- a/g4f/providers/base_provider.py +++ b/g4f/providers/base_provider.py @@ -9,7 +9,7 @@ from inspect import signature, Parameter from typing import Callable, Union from ..typing import CreateResult, AsyncResult, Messages from .types import BaseProvider, FinishReason -from ..errors import NestAsyncioError, ModelNotSupportedError, MissingRequirementsError +from ..errors import NestAsyncioError, ModelNotSupportedError from .. import debug if sys.version_info < (3, 10): @@ -30,7 +30,7 @@ def get_running_loop(check_nested: bool) -> Union[AbstractEventLoop, None]: import nest_asyncio nest_asyncio.apply(loop) except ImportError: - raise MissingRequirementsError('Install "nest_asyncio" package') + raise NestAsyncioError('Install "nest_asyncio" package') return loop except RuntimeError: pass |