Skip to content

Commit

Permalink
fix(send): Do not offset even if no prune as we are taking only not s…
Browse files Browse the repository at this point in the history
…ent signals
  • Loading branch information
julienloizelet committed Feb 23, 2024
1 parent 269d8f1 commit 8bc61a9
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 8 deletions.
6 changes: 3 additions & 3 deletions src/cscapi/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,8 +120,6 @@ def send_signals(
unsent_signals_by_machineid, prune_after_send
)
total_sent += batch_sent
if not prune_after_send:
offset += batch_size

self.logger.info(f"Total sent signals: {total_sent}")
return total_sent
Expand Down Expand Up @@ -177,7 +175,9 @@ def _send_signals_by_machine_id(
machine_to_process.token,
signals_by_machineid[machine_to_process.machine_id],
)
total_sent += len(sent_signal_ids)
sent_signal_ids_count = len(sent_signal_ids)
total_sent += sent_signal_ids_count
self.logger.info(f"sent {sent_signal_ids_count} signals")
except httpx.HTTPStatusError as exc:
self.logger.error(
f"error while sending signals: {exc} for machine {machine_to_process.machine_id}"
Expand Down
21 changes: 16 additions & 5 deletions tests/test_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -266,13 +266,24 @@ def test_signal_gets_deleted_after_send(
method="POST", url=CAPI_BASE_DEV_URL + CAPI_METRICS_ENDPOINT, text="OK"
)

s1 = mock_signals()[0]
client.add_signals([s1])
assert len(client.storage.get_signals(limit=1000)) == 1
sent = client.send_signals(prune_after_send=True)
assert sent == 1
for x in range(5):
client.add_signals(mock_signals())
time.sleep(0.05)
assert len(client.storage.get_signals(limit=1000)) == 5
sent = client.send_signals(prune_after_send=True, batch_size=1)
assert sent == 5
assert len(client.storage.get_signals(limit=1000)) == 0

for x in range(5):
client.add_signals(mock_signals())
time.sleep(0.05)
assert len(client.storage.get_signals(limit=1000)) == 5
sent = client.send_signals(prune_after_send=False, batch_size=1)
assert sent == 5
assert len(client.storage.get_signals(limit=1000)) == 5
assert len(client.storage.get_signals(limit=1000, sent=True)) == 5
assert len(client.storage.get_signals(limit=1000, sent=False)) == 0

def test_signals_from_already_registered_machine(
self, httpx_mock: HTTPXMock, client: CAPIClient
):
Expand Down
3 changes: 3 additions & 0 deletions tests/test_sql_storage.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ def test_get_signals_with_no_machine(self):
assert len(self.storage.get_signals(limit=1000)) == 0
for x in range(10):
self.client.add_signals(mock_signals())
time.sleep(0.05)
assert len(self.storage.get_signals(limit=1000)) == 10
assert len(self.storage.get_signals(limit=5)) == 5
assert len(self.storage.get_signals(limit=5, offset=8)) == 2
Expand All @@ -151,6 +152,7 @@ def test_get_signals_with_machine(self):
assert len(self.storage.get_signals(limit=1000)) == 0
for x in range(10):
self.client.add_signals(mock_signals())
time.sleep(0.05)
assert len(self.storage.get_signals(limit=1000)) == 10
assert len(self.storage.get_signals(limit=5)) == 5
assert len(self.storage.get_signals(limit=5, offset=8)) == 2
Expand Down Expand Up @@ -178,6 +180,7 @@ def test_get_signals_with_failing_machine(self):
assert len(self.storage.get_signals(limit=1000)) == 0
for x in range(10):
self.client.add_signals(mock_signals())
time.sleep(0.05)
assert len(self.storage.get_signals(limit=1000)) == 10
assert len(self.storage.get_signals(limit=5)) == 5
assert len(self.storage.get_signals(limit=5, offset=8)) == 2
Expand Down

0 comments on commit 8bc61a9

Please sign in to comment.