Skip to content

Commit 5155e85

Browse files
author
Bilal Al
committed
fixed pluggable and redis async factory calls
fixed tests added listener base class
1 parent e43fee8 commit 5155e85

File tree

5 files changed

+58
-156
lines changed

5 files changed

+58
-156
lines changed

splitio/client/factory.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -887,7 +887,6 @@ async def _build_redis_factory_async(api_key, cfg):
887887
cfg['labelsEnabled'],
888888
recorder,
889889
manager,
890-
sdk_ready_flag=None,
891890
telemetry_producer=telemetry_producer,
892891
telemetry_init_producer=telemetry_init_producer,
893892
telemetry_submitter=telemetry_submitter
@@ -1048,7 +1047,6 @@ async def _build_pluggable_factory_async(api_key, cfg):
10481047
cfg['labelsEnabled'],
10491048
recorder,
10501049
manager,
1051-
sdk_ready_flag=None,
10521050
telemetry_producer=telemetry_producer,
10531051
telemetry_init_producer=telemetry_init_producer,
10541052
telemetry_submitter=telemetry_submitter
@@ -1192,7 +1190,6 @@ async def _build_localhost_factory_async(cfg):
11921190
False,
11931191
recorder,
11941192
manager,
1195-
None,
11961193
telemetry_producer=telemetry_producer,
11971194
telemetry_init_producer=telemetry_producer.get_telemetry_init_producer(),
11981195
telemetry_submitter=LocalhostTelemetrySubmitterAsync(),

splitio/client/listener.py

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,28 @@ def log_impression(self, data):
2121
"""
2222
pass
2323

24+
class ImpressionListenerBase(ImpressionListener): # pylint: disable=too-few-public-methods
25+
"""
26+
Impression listener safe-execution wrapper.
27+
28+
Wrapper in charge of building all the data that client would require in case
29+
of adding some logic with the treatment and impression results.
30+
"""
31+
32+
impression_listener = None
33+
34+
def __init__(self, impression_listener, sdk_metadata):
35+
"""
36+
Class Constructor.
37+
38+
:param impression_listener: User provided impression listener.
39+
:type impression_listener: ImpressionListener
40+
:param sdk_metadata: SDK version, instance name & IP
41+
:type sdk_metadata: splitio.client.util.SdkMetadata
42+
"""
43+
self.impression_listener = impression_listener
44+
self._metadata = sdk_metadata
45+
2446
def _construct_data(self, impression, attributes):
2547
data = {}
2648
data['impression'] = impression
@@ -29,16 +51,16 @@ def _construct_data(self, impression, attributes):
2951
data['instance-id'] = self._metadata.instance_name
3052
return data
3153

32-
class ImpressionListenerWrapper(ImpressionListener): # pylint: disable=too-few-public-methods
54+
def log_impression(self, impression, attributes=None):
55+
pass
56+
57+
class ImpressionListenerWrapper(ImpressionListenerBase): # pylint: disable=too-few-public-methods
3358
"""
3459
Impression listener safe-execution wrapper.
3560
3661
Wrapper in charge of building all the data that client would require in case
3762
of adding some logic with the treatment and impression results.
3863
"""
39-
40-
impression_listener = None
41-
4264
def __init__(self, impression_listener, sdk_metadata):
4365
"""
4466
Class Constructor.
@@ -48,8 +70,7 @@ def __init__(self, impression_listener, sdk_metadata):
4870
:param sdk_metadata: SDK version, instance name & IP
4971
:type sdk_metadata: splitio.client.util.SdkMetadata
5072
"""
51-
self.impression_listener = impression_listener
52-
self._metadata = sdk_metadata
73+
ImpressionListenerBase.__init__(self, impression_listener, sdk_metadata)
5374

5475
def log_impression(self, impression, attributes=None):
5576
"""
@@ -67,16 +88,13 @@ def log_impression(self, impression, attributes=None):
6788
raise ImpressionListenerException('Error in log_impression user\'s method is throwing exceptions') from exc
6889

6990

70-
class ImpressionListenerWrapperAsync(ImpressionListener): # pylint: disable=too-few-public-methods
91+
class ImpressionListenerWrapperAsync(ImpressionListenerBase): # pylint: disable=too-few-public-methods
7192
"""
7293
Impression listener safe-execution wrapper.
7394
7495
Wrapper in charge of building all the data that client would require in case
7596
of adding some logic with the treatment and impression results.
7697
"""
77-
78-
impression_listener = None
79-
8098
def __init__(self, impression_listener, sdk_metadata):
8199
"""
82100
Class Constructor.
@@ -86,8 +104,7 @@ def __init__(self, impression_listener, sdk_metadata):
86104
:param sdk_metadata: SDK version, instance name & IP
87105
:type sdk_metadata: splitio.client.util.SdkMetadata
88106
"""
89-
self.impression_listener = impression_listener
90-
self._metadata = sdk_metadata
107+
ImpressionListenerBase.__init__(self, impression_listener, sdk_metadata)
91108

92109
async def log_impression(self, impression, attributes=None):
93110
"""

0 commit comments

Comments
 (0)