Create a mock for litellm.completion that returns responses in order.
(responses: list[str])
| 1113 | |
| 1114 | |
| 1115 | def _mock_completion(responses: list[str]): |
| 1116 | """Create a mock for litellm.completion that returns responses in order.""" |
| 1117 | call_count = {"n": 0} |
| 1118 | |
| 1119 | def side_effect(*args, **kwargs): |
| 1120 | idx = min(call_count["n"], len(responses) - 1) |
| 1121 | call_count["n"] += 1 |
| 1122 | mock_resp = MagicMock() |
| 1123 | mock_resp.choices = [MagicMock()] |
| 1124 | mock_resp.choices[0].message.content = responses[idx] |
| 1125 | mock_resp.usage = MagicMock(prompt_tokens=100, completion_tokens=50) |
| 1126 | mock_resp.usage.prompt_tokens_details = None |
| 1127 | return mock_resp |
| 1128 | |
| 1129 | return side_effect |
| 1130 | |
| 1131 | |
| 1132 | def _mock_acompletion(responses: list[str]): |
no outgoing calls
no test coverage detected