From cab71ca8b6e1a4771499c4a2fb445d9ea3602ed0 Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Tue, 26 Nov 2024 16:36:45 +0100 Subject: Add duckduckgo-search to slim requirements, Add pass provider as model in the client, Fix missing @property in version utils --- etc/unittest/client.py | 35 ++++++++++++++++++++++++++++++++++- etc/unittest/main.py | 11 ++++++++++- 2 files changed, 44 insertions(+), 2 deletions(-) (limited to 'etc') diff --git a/etc/unittest/client.py b/etc/unittest/client.py index 97f9f6c8..663d5f28 100644 --- a/etc/unittest/client.py +++ b/etc/unittest/client.py @@ -2,7 +2,10 @@ from __future__ import annotations import unittest -from g4f.client import Client, AsyncClient, ChatCompletion, ChatCompletionChunk +from g4f.errors import ModelNotFoundError +from g4f.client import Client, AsyncClient, ChatCompletion, ChatCompletionChunk, get_model_and_provider +from g4f.Provider.Copilot import Copilot +from g4f.models import gpt_4o from .mocks import AsyncGeneratorProviderMock, ModelProviderMock, YieldProviderMock DEFAULT_MESSAGES = [{'role': 'user', 'content': 'Hello'}] @@ -104,5 +107,35 @@ class TestPassModel(unittest.TestCase): self.assertIsInstance(response, ChatCompletion) self.assertEqual("How are you?", response.choices[0].message.content) + def test_model_not_found(self): + def run_exception(): + client = Client() + client.chat.completions.create(DEFAULT_MESSAGES, "Hello") + self.assertRaises(ModelNotFoundError, run_exception) + + def test_best_provider(self): + not_default_model = "gpt-4o" + model, provider = get_model_and_provider(not_default_model, None, False) + self.assertTrue(hasattr(provider, "create_completion")) + self.assertEqual(model, not_default_model) + + def test_default_model(self): + default_model = "" + model, provider = get_model_and_provider(default_model, None, False) + self.assertTrue(hasattr(provider, "create_completion")) + self.assertEqual(model, default_model) + + def test_provider_as_model(self): + provider_as_model = Copilot.__name__ + model, provider = get_model_and_provider(provider_as_model, None, False) + self.assertTrue(hasattr(provider, "create_completion")) + self.assertIsInstance(model, str) + self.assertEqual(model, Copilot.default_model) + + def test_get_model(self): + model, provider = get_model_and_provider(gpt_4o.name, None, False) + self.assertTrue(hasattr(provider, "create_completion")) + self.assertEqual(model, gpt_4o.name) + if __name__ == '__main__': unittest.main() \ No newline at end of file diff --git a/etc/unittest/main.py b/etc/unittest/main.py index a3949216..0c71aea1 100644 --- a/etc/unittest/main.py +++ b/etc/unittest/main.py @@ -1,7 +1,9 @@ import unittest import asyncio + import g4f from g4f import ChatCompletion, get_last_provider +from g4f.errors import VersionNotFoundError from g4f.Provider import RetryProvider from .mocks import ProviderMock @@ -27,4 +29,11 @@ class TestGetLastProvider(unittest.TestCase): last_provider_dict = get_last_provider(True) self.assertIsInstance(last_provider_dict, dict) self.assertIn('name', last_provider_dict) - self.assertEqual(ProviderMock.__name__, last_provider_dict['name']) \ No newline at end of file + self.assertEqual(ProviderMock.__name__, last_provider_dict['name']) + + def test_get_latest_version(self): + try: + self.assertIsInstance(g4f.version.utils.current_version, str) + except VersionNotFoundError: + pass + self.assertIsInstance(g4f.version.utils.latest_version, str) \ No newline at end of file -- cgit v1.2.3