From 9b7d398dda7deb79b3682f74aa7e463e2096000c Mon Sep 17 00:00:00 2001 From: joul87 Date: Wed, 8 Oct 2025 19:34:33 +0300 Subject: [PATCH 1/2] fix: fixed uncontrolled consumers --- posthog/client.py | 4 ++-- posthog/test/test_client.py | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/posthog/client.py b/posthog/client.py index 85e92eb2..f29f1c73 100644 --- a/posthog/client.py +++ b/posthog/client.py @@ -3,7 +3,7 @@ import os import sys from datetime import datetime, timedelta -from typing import Any, Callable, Dict, Optional, Union +from typing import Any, Dict, Optional, Union from typing_extensions import Unpack from uuid import uuid4 @@ -271,8 +271,8 @@ def __init__( # to call flush(). if send: atexit.register(self.join) + self.consumers = [] for n in range(thread): - self.consumers = [] consumer = Consumer( self.queue, self.api_key, diff --git a/posthog/test/test_client.py b/posthog/test/test_client.py index e97d5349..cfaa477b 100644 --- a/posthog/test/test_client.py +++ b/posthog/test/test_client.py @@ -2466,3 +2466,12 @@ def test_debug_flag_re_raises_exceptions(self, mock_enqueue): with self.assertRaises(Exception) as cm: method(*args, **kwargs) self.assertEqual(str(cm.exception), "Expected error") + + def test_number_of_consumers(self): + expected_threads = 10 + + client = Client(FAKE_TEST_API_KEY, send=False, thread=expected_threads) + try: + assert len(client.consumers) == expected_threads + finally: + client.shutdown() From 64b733a14d8a88e8ae8d22c24be74ed0bc97dc23 Mon Sep 17 00:00:00 2001 From: joul87 Date: Wed, 8 Oct 2025 20:31:13 +0300 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- posthog/test/test_client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posthog/test/test_client.py b/posthog/test/test_client.py index cfaa477b..c39a7ab8 100644 --- a/posthog/test/test_client.py +++ b/posthog/test/test_client.py @@ -2472,6 +2472,6 @@ def test_number_of_consumers(self): client = Client(FAKE_TEST_API_KEY, send=False, thread=expected_threads) try: - assert len(client.consumers) == expected_threads + self.assertEqual(len(client.consumers), expected_threads) finally: client.shutdown()