1313from featuremanagement .azuremonitor import TargetingSpanProcessor
1414
1515
16- def _event_properties (mock_track_event ):
17- return mock_track_event .call_args .kwargs ["event_properties " ]
16+ def _event_properties (mock_logger_info ):
17+ return mock_logger_info .call_args .kwargs ["extra " ]
1818
1919
2020@pytest .mark .usefixtures ("caplog" )
@@ -44,15 +44,18 @@ def test_send_telemetry_appinsights(self):
4444 evaluation_event .variant = variant
4545 evaluation_event .reason = VariantAssignmentReason .DEFAULT_WHEN_DISABLED
4646
47- with patch ("featuremanagement.azuremonitor._send_telemetry.track_event" ) as mock_track_event :
48- # This is called like this so we can override the track_event function
47+ with (
48+ patch ("featuremanagement.azuremonitor._send_telemetry._initialize_event_logger" ),
49+ patch ("featuremanagement.azuremonitor._send_telemetry._event_logger.info" ) as mock_logger_info ,
50+ ):
51+ # This is called like this so we can override the _event_logger.info function
4952 featuremanagement .azuremonitor ._send_telemetry .publish_telemetry ( # pylint: disable=protected-access
5053 evaluation_event
5154 )
52- mock_track_event .assert_called_once ()
53- assert mock_track_event .call_args [0 ][0 ] == "FeatureEvaluation"
54- assert mock_track_event . call_args [ 0 ][ 1 ] == "test_user"
55- event_properties = _event_properties ( mock_track_event )
55+ mock_logger_info .assert_called_once ()
56+ assert mock_logger_info .call_args [0 ][0 ] == "FeatureEvaluation"
57+ event_properties = _event_properties ( mock_logger_info )
58+ assert event_properties [ "TargetingId" ] == "test_user"
5659 assert event_properties ["FeatureName" ] == "TestFeature"
5760 assert event_properties ["Enabled" ] == "True"
5861 assert event_properties ["Variant" ] == "TestVariant"
@@ -91,15 +94,17 @@ def test_send_telemetry_appinsights_no_user(self):
9194 evaluation_event .variant = variant
9295 evaluation_event .reason = VariantAssignmentReason .DEFAULT_WHEN_DISABLED
9396
94- with patch ("featuremanagement.azuremonitor._send_telemetry.track_event" ) as mock_track_event :
95- # This is called like this so we can override the track_event function
97+ with (
98+ patch ("featuremanagement.azuremonitor._send_telemetry._initialize_event_logger" ),
99+ patch ("featuremanagement.azuremonitor._send_telemetry._event_logger.info" ) as mock_logger_info ,
100+ ):
101+ # This is called like this so we can override the _event_logger.info function
96102 featuremanagement .azuremonitor ._send_telemetry .publish_telemetry ( # pylint: disable=protected-access
97103 evaluation_event
98104 )
99- mock_track_event .assert_called_once ()
100- assert mock_track_event .call_args [0 ][0 ] == "FeatureEvaluation"
101- assert mock_track_event .call_args [0 ][1 ] == ""
102- event_properties = _event_properties (mock_track_event )
105+ mock_logger_info .assert_called_once ()
106+ assert mock_logger_info .call_args [0 ][0 ] == "FeatureEvaluation"
107+ event_properties = _event_properties (mock_logger_info )
103108 assert event_properties ["FeatureName" ] == "TestFeature"
104109 assert event_properties ["Enabled" ] == "False"
105110 assert "TargetingId" not in event_properties
@@ -113,15 +118,17 @@ def test_send_telemetry_appinsights_no_variant(self):
113118 evaluation_event .enabled = True
114119 evaluation_event .user = "test_user"
115120
116- with patch ("featuremanagement.azuremonitor._send_telemetry.track_event" ) as mock_track_event :
117- # This is called like this so we can override the track_event function
121+ with (
122+ patch ("featuremanagement.azuremonitor._send_telemetry._initialize_event_logger" ),
123+ patch ("featuremanagement.azuremonitor._send_telemetry._event_logger.info" ) as mock_logger_info ,
124+ ):
125+ # This is called like this so we can override the _event_logger.info function
118126 featuremanagement .azuremonitor ._send_telemetry .publish_telemetry ( # pylint: disable=protected-access
119127 evaluation_event
120128 )
121- mock_track_event .assert_called_once ()
122- assert mock_track_event .call_args [0 ][0 ] == "FeatureEvaluation"
123- assert mock_track_event .call_args [0 ][1 ] == "test_user"
124- event_properties = _event_properties (mock_track_event )
129+ mock_logger_info .assert_called_once ()
130+ assert mock_logger_info .call_args [0 ][0 ] == "FeatureEvaluation"
131+ event_properties = _event_properties (mock_logger_info )
125132 assert event_properties ["FeatureName" ] == "TestFeature"
126133 assert event_properties ["Enabled" ] == "True"
127134 assert "Variant" not in event_properties
@@ -132,12 +139,15 @@ def test_send_telemetry_appinsights_no_feature_flag(self):
132139 evaluation_event .enabled = True
133140 evaluation_event .user = "test_user"
134141
135- with patch ("featuremanagement.azuremonitor._send_telemetry.track_event" ) as mock_track_event :
136- # This is called like this so we can override the track_event function
142+ with (
143+ patch ("featuremanagement.azuremonitor._send_telemetry._initialize_event_logger" ),
144+ patch ("featuremanagement.azuremonitor._send_telemetry._event_logger.info" ) as mock_logger_info ,
145+ ):
146+ # This is called like this so we can override the _event_logger.info function
137147 featuremanagement .azuremonitor ._send_telemetry .publish_telemetry ( # pylint: disable=protected-access
138148 evaluation_event
139149 )
140- mock_track_event .assert_not_called ()
150+ mock_logger_info .assert_not_called ()
141151
142152 def test_send_telemetry_appinsights_default_when_enabled (self ):
143153 feature_flag = FeatureFlag .convert_from_json (
@@ -157,15 +167,17 @@ def test_send_telemetry_appinsights_default_when_enabled(self):
157167 evaluation_event .variant = variant
158168 evaluation_event .reason = VariantAssignmentReason .DEFAULT_WHEN_ENABLED
159169
160- with patch ("featuremanagement.azuremonitor._send_telemetry.track_event" ) as mock_track_event :
161- # This is called like this so we can override the track_event function
170+ with (
171+ patch ("featuremanagement.azuremonitor._send_telemetry._initialize_event_logger" ),
172+ patch ("featuremanagement.azuremonitor._send_telemetry._event_logger.info" ) as mock_logger_info ,
173+ ):
174+ # This is called like this so we can override the _event_logger.info function
162175 featuremanagement .azuremonitor ._send_telemetry .publish_telemetry ( # pylint: disable=protected-access
163176 evaluation_event
164177 )
165- mock_track_event .assert_called_once ()
166- assert mock_track_event .call_args [0 ][0 ] == "FeatureEvaluation"
167- assert mock_track_event .call_args [0 ][1 ] == "test_user"
168- event_properties = _event_properties (mock_track_event )
178+ mock_logger_info .assert_called_once ()
179+ assert mock_logger_info .call_args [0 ][0 ] == "FeatureEvaluation"
180+ event_properties = _event_properties (mock_logger_info )
169181 assert event_properties ["FeatureName" ] == "TestFeature"
170182 assert event_properties ["Enabled" ] == "True"
171183 assert event_properties ["Variant" ] == "big"
@@ -188,15 +200,17 @@ def test_send_telemetry_appinsights_default_when_enabled_no_percentile(self):
188200 evaluation_event .variant = variant
189201 evaluation_event .reason = VariantAssignmentReason .DEFAULT_WHEN_ENABLED
190202
191- with patch ("featuremanagement.azuremonitor._send_telemetry.track_event" ) as mock_track_event :
192- # This is called like this so we can override the track_event function
203+ with (
204+ patch ("featuremanagement.azuremonitor._send_telemetry._initialize_event_logger" ),
205+ patch ("featuremanagement.azuremonitor._send_telemetry._event_logger.info" ) as mock_logger_info ,
206+ ):
207+ # This is called like this so we can override the _event_logger.info function
193208 featuremanagement .azuremonitor ._send_telemetry .publish_telemetry ( # pylint: disable=protected-access
194209 evaluation_event
195210 )
196- mock_track_event .assert_called_once ()
197- assert mock_track_event .call_args [0 ][0 ] == "FeatureEvaluation"
198- assert mock_track_event .call_args [0 ][1 ] == "test_user"
199- event_properties = _event_properties (mock_track_event )
211+ mock_logger_info .assert_called_once ()
212+ assert mock_logger_info .call_args [0 ][0 ] == "FeatureEvaluation"
213+ event_properties = _event_properties (mock_logger_info )
200214 assert event_properties ["FeatureName" ] == "TestFeature"
201215 assert event_properties ["Enabled" ] == "True"
202216 assert event_properties ["Variant" ] == "big"
@@ -219,15 +233,17 @@ def test_send_telemetry_appinsights_allocation(self):
219233 evaluation_event .variant = variant
220234 evaluation_event .reason = VariantAssignmentReason .PERCENTILE
221235
222- with patch ("featuremanagement.azuremonitor._send_telemetry.track_event" ) as mock_track_event :
223- # This is called like this so we can override the track_event function
236+ with (
237+ patch ("featuremanagement.azuremonitor._send_telemetry._initialize_event_logger" ),
238+ patch ("featuremanagement.azuremonitor._send_telemetry._event_logger.info" ) as mock_logger_info ,
239+ ):
240+ # This is called like this so we can override the _event_logger.info function
224241 featuremanagement .azuremonitor ._send_telemetry .publish_telemetry ( # pylint: disable=protected-access
225242 evaluation_event
226243 )
227- mock_track_event .assert_called_once ()
228- assert mock_track_event .call_args [0 ][0 ] == "FeatureEvaluation"
229- assert mock_track_event .call_args [0 ][1 ] == "test_user"
230- event_properties = _event_properties (mock_track_event )
244+ mock_logger_info .assert_called_once ()
245+ assert mock_logger_info .call_args [0 ][0 ] == "FeatureEvaluation"
246+ event_properties = _event_properties (mock_logger_info )
231247 assert event_properties ["FeatureName" ] == "TestFeature"
232248 assert event_properties ["Enabled" ] == "True"
233249 assert event_properties ["Variant" ] == "big"
0 commit comments