mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-10-22 00:15:20 +08:00
30 lines
916 B
Python
30 lines
916 B
Python
from unittest.mock import Mock
|
|
|
|
import httpx
|
|
import pytest
|
|
|
|
from langbot.pkg.telemetry.telemetry import TelemetryManager
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
@pytest.mark.parametrize(
|
|
'ack,expected',
|
|
[
|
|
({'stored': 1, 'rejected': 0}, True),
|
|
({'stored': 0, 'rejected': 1}, False),
|
|
({'stored': 1, 'rejected': 1}, False),
|
|
({'stored': 0, 'rejected': 0}, False),
|
|
({}, False),
|
|
({'stored': True, 'rejected': 0}, False),
|
|
],
|
|
)
|
|
async def test_batch_requires_complete_ack(ack, expected):
|
|
app = Mock()
|
|
manager = TelemetryManager(app)
|
|
manager.telemetry_config = {'url': 'https://telemetry.test'}
|
|
async with httpx.AsyncClient(
|
|
transport=httpx.MockTransport(lambda request: httpx.Response(200, json={'code': 0, 'data': ack}))
|
|
) as client:
|
|
manager._client = client
|
|
assert await manager.send({'records': [{'event_id': 'a' * 163}]}) is expected
|