Testing Concurrent Provider Integration in gpt4free
This test suite validates GPT-4 Free API providers by executing concurrent tests across multiple provider implementations. It assesses provider functionality, authentication requirements, and response handling for chat completion requests.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
xtekky/gpt4free
etc/testing/test_providers.py
from g4f.Provider import __all__, ProviderUtils
from g4f import ChatCompletion
import concurrent.futures
_ = [
'BaseProvider',
'AsyncProvider',
'AsyncGeneratorProvider',
'RetryProvider'
]
def test_provider(provider):
try:
provider = (ProviderUtils.convert[provider])
if provider.working and not provider.needs_auth:
print('testing', provider.__name__)
completion = ChatCompletion.create(model='gpt-3.5-turbo',
messages=[{"role": "user", "content": "hello"}], provider=provider)
return completion, provider.__name__
except Exception as e:
#print(f'Failed to test provider: {provider} | {e}')
return None
with concurrent.futures.ThreadPoolExecutor() as executor:
futures = [
executor.submit(test_provider, provider)
for provider in __all__
if provider not in _
]
for future in concurrent.futures.as_completed(futures):
if result := future.result():
print(f'{result[1]} | {result[0]}')