mocks.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. from g4f.providers.base_provider import AbstractProvider, AsyncProvider, AsyncGeneratorProvider
  2. from g4f.providers.response import ImageResponse
  3. from g4f.errors import MissingAuthError
  4. class ProviderMock(AbstractProvider):
  5. working = True
  6. @classmethod
  7. def create_completion(
  8. cls, model, messages, stream, **kwargs
  9. ):
  10. yield "Mock"
  11. class AsyncProviderMock(AsyncProvider):
  12. working = True
  13. @classmethod
  14. async def create_async(
  15. cls, model, messages, **kwargs
  16. ):
  17. return "Mock"
  18. class AsyncGeneratorProviderMock(AsyncGeneratorProvider):
  19. working = True
  20. @classmethod
  21. async def create_async_generator(
  22. cls, model, messages, stream, **kwargs
  23. ):
  24. yield "Mock"
  25. class ModelProviderMock(AbstractProvider):
  26. working = True
  27. @classmethod
  28. def create_completion(
  29. cls, model, messages, stream, **kwargs
  30. ):
  31. yield model
  32. class YieldProviderMock(AsyncGeneratorProvider):
  33. working = True
  34. @classmethod
  35. async def create_async_generator(
  36. cls, model, messages, stream, **kwargs
  37. ):
  38. for message in messages:
  39. yield message["content"]
  40. class YieldImageResponseProviderMock(AsyncGeneratorProvider):
  41. working = True
  42. @classmethod
  43. async def create_async_generator(
  44. cls, model, messages, stream, prompt: str, **kwargs
  45. ):
  46. yield ImageResponse(prompt, "")
  47. class MissingAuthProviderMock(AbstractProvider):
  48. working = True
  49. @classmethod
  50. def create_completion(
  51. cls, model, messages, stream, **kwargs
  52. ):
  53. raise MissingAuthError(cls.__name__)
  54. yield cls.__name__
  55. class RaiseExceptionProviderMock(AbstractProvider):
  56. working = True
  57. @classmethod
  58. def create_completion(
  59. cls, model, messages, stream, **kwargs
  60. ):
  61. raise RuntimeError(cls.__name__)
  62. yield cls.__name__
  63. class AsyncRaiseExceptionProviderMock(AsyncGeneratorProvider):
  64. working = True
  65. @classmethod
  66. async def create_async_generator(
  67. cls, model, messages, stream, **kwargs
  68. ):
  69. raise RuntimeError(cls.__name__)
  70. yield cls.__name__
  71. class YieldNoneProviderMock(AsyncGeneratorProvider):
  72. working = True
  73. @classmethod
  74. async def create_async_generator(
  75. cls, model, messages, stream, **kwargs
  76. ):
  77. yield None