Mock OpenAI client for testing
| 21 | |
| 22 | |
| 23 | class MockClient: |
| 24 | """Mock OpenAI client for testing""" |
| 25 | def __init__(self): |
| 26 | self.chat = self.Chat() |
| 27 | |
| 28 | class Chat: |
| 29 | def __init__(self): |
| 30 | self.completions = self.Completions() |
| 31 | |
| 32 | class Completions: |
| 33 | def create(self, **kwargs): |
| 34 | class MockChoice: |
| 35 | class Message: |
| 36 | content = "Test response: 2 + 2 = 4" |
| 37 | message = Message() |
| 38 | finish_reason = "stop" |
| 39 | |
| 40 | class MockUsage: |
| 41 | completion_tokens = 10 |
| 42 | total_tokens = 20 |
| 43 | |
| 44 | class MockResponse: |
| 45 | choices = [MockChoice()] |
| 46 | usage = MockUsage() |
| 47 | |
| 48 | return MockResponse() |
| 49 | |
| 50 | |
| 51 | class MockBadClient: |
no outgoing calls