@@ -157,6 +157,7 @@ def test_metrics_endpoint_relation(self, mock_remove_user, mock_add_user,
157157 def test_tracing_relation_updates_endpoints (self , mock_set_tracing_config , * _ ):
158158 harness = self .harness
159159 harness .set_leader (True )
160+ mock_set_tracing_config .reset_mock ()
160161
161162 relation_id = harness .add_relation ("charm-tracing" , "tempo-coordinator" )
162163 harness .add_relation_unit (relation_id , "tempo-coordinator/0" )
@@ -171,6 +172,21 @@ def test_tracing_relation_updates_endpoints(self, mock_set_tracing_config, *_):
171172 ca_cert = None ,
172173 )
173174
175+ @patch ("builtins.open" , new_callable = mock_open , read_data = agent_conf )
176+ @patch ("controlsocket.ControlSocketClient.set_charm_tracing_config" )
177+ def test_tracing_relation_cleared_on_leader_elected_without_relations (
178+ self , mock_set_tracing_config , * _
179+ ):
180+ harness = self .harness
181+
182+ harness .set_leader (True )
183+
184+ mock_set_tracing_config .assert_called_once_with (
185+ grpc_endpoint = None ,
186+ http_endpoint = None ,
187+ ca_cert = None ,
188+ )
189+
174190 @patch ("builtins.open" , new_callable = mock_open , read_data = agent_conf )
175191 @patch ("controlsocket.ControlSocketClient.set_charm_tracing_config" )
176192 def test_tracing_relation_replayed_on_leader_elected (
@@ -187,11 +203,6 @@ def test_tracing_relation_replayed_on_leader_elected(
187203
188204 mock_set_tracing_config .assert_not_called ()
189205
190- harness .charm ._stored .tracing_endpoints = {
191- "otlp_grpc" : "stale-grpc:4317" ,
192- "otlp_http" : "http://stale-http:4318" ,
193- }
194- harness .charm ._stored .ca_cert = "stale-ca-cert"
195206 harness .set_leader (True )
196207
197208 mock_set_tracing_config .assert_called_once_with (
@@ -214,13 +225,14 @@ def test_tracing_relation_change_ignores_not_ready(
214225 mock_set_tracing_config .assert_not_called ()
215226
216227 @patch ("builtins.open" , new_callable = mock_open , read_data = agent_conf )
217- @patch (
218- "controlsocket.ControlSocketClient.set_charm_tracing_config" ,
219- side_effect = SocketConnectionError ("could not connect to socket" ),
220- )
221- def test_tracing_relation_update_sets_blocked_on_socket_error (self , * _ ):
228+ @patch ("controlsocket.ControlSocketClient.set_charm_tracing_config" )
229+ def test_tracing_relation_update_sets_blocked_on_socket_error (
230+ self , mock_set_tracing_config , * _
231+ ):
222232 harness = self .harness
223233 harness .set_leader (True )
234+ mock_set_tracing_config .reset_mock ()
235+ mock_set_tracing_config .side_effect = SocketConnectionError ("could not connect to socket" )
224236
225237 relation_id = harness .add_relation ("charm-tracing" , "tempo-coordinator" )
226238 harness .add_relation_unit (relation_id , "tempo-coordinator/0" )
@@ -242,6 +254,7 @@ def test_tracing_relation_update_sets_blocked_on_socket_error(self, *_):
242254 def test_tracing_status_error_clears_after_success (self , mock_set_tracing_config , * _ ):
243255 harness = self .harness
244256 harness .set_leader (True )
257+ mock_set_tracing_config .reset_mock ()
245258
246259 relation_id = harness .add_relation ("charm-tracing" , "tempo-coordinator" )
247260 harness .add_relation_unit (relation_id , "tempo-coordinator/0" )
@@ -269,6 +282,7 @@ def test_tracing_status_error_clears_after_success(self, mock_set_tracing_config
269282 def test_tracing_relation_removed_clears_endpoints (self , mock_set_tracing_config , * _ ):
270283 harness = self .harness
271284 harness .set_leader (True )
285+ mock_set_tracing_config .reset_mock ()
272286
273287 relation_id = harness .add_relation ("charm-tracing" , "tempo-coordinator" )
274288 harness .add_relation_unit (relation_id , "tempo-coordinator/0" )
@@ -296,6 +310,7 @@ def test_tracing_relation_removed_clears_endpoints(self, mock_set_tracing_config
296310 def test_receive_ca_cert_updates_tracing_config (self , mock_set_tracing_config , * _ ):
297311 harness = self .harness
298312 harness .set_leader (True )
313+ mock_set_tracing_config .reset_mock ()
299314
300315 relation_id = harness .add_relation ("charm-tracing-ca-cert" , "cert-provider" )
301316 harness .add_relation_unit (relation_id , "cert-provider/0" )
@@ -331,6 +346,7 @@ def test_receive_ca_cert_update_ignores_empty_cert_list(
331346 def test_receive_ca_cert_removed_clears_tracing_ca_cert (self , mock_set_tracing_config , * _ ):
332347 harness = self .harness
333348 harness .set_leader (True )
349+ mock_set_tracing_config .reset_mock ()
334350
335351 relation_id = harness .add_relation ("charm-tracing-ca-cert" , "cert-provider" )
336352 harness .add_relation_unit (relation_id , "cert-provider/0" )
@@ -409,6 +425,7 @@ def test_dbcluster_relation_changed_single_addr(
409425 mock_get_agent_id .return_value = '0'
410426
411427 harness .set_leader ()
428+ harness .charm ._stored .tracing_status_error = None
412429
413430 # Have another unit enter the relation.
414431 # Its bind address should end up in the application data bindings list.
@@ -508,6 +525,7 @@ def test_dbcluster_relation_departed(
508525 mock_get_agent_id .return_value = '0'
509526
510527 harness .set_leader ()
528+ harness .charm ._stored .tracing_status_error = None
511529
512530 # Have another unit enter the relation.
513531 relation_id = harness .add_relation ('dbcluster' , harness .charm .app .name )
@@ -538,6 +556,7 @@ def test_dbcluster_relation_departed(
538556 def test_s3_relation_credentials_changed (self , mock_add_s3_credentials ):
539557 harness = self .harness
540558 harness .set_leader (True )
559+ harness .charm ._stored .tracing_status_error = None
541560
542561 relation_id = harness .add_relation ("s3-backend" , "s3-integrator" )
543562 harness .add_relation_unit (relation_id , "s3-integrator/0" )
@@ -567,6 +586,7 @@ def test_s3_relation_credentials_changed(self, mock_add_s3_credentials):
567586 def test_s3_status_pending_clears_after_collect (self , mock_add_s3_credentials ):
568587 harness = self .harness
569588 harness .set_leader (True )
589+ harness .charm ._stored .tracing_status_error = None
570590
571591 relation_id = harness .add_relation ("s3-backend" , "s3-integrator" )
572592 harness .add_relation_unit (relation_id , "s3-integrator/0" )
@@ -595,6 +615,7 @@ def test_s3_status_pending_clears_after_collect(self, mock_add_s3_credentials):
595615 def test_s3_relation_credentials_changed_failure_sets_blocked (self , _mock_add ):
596616 harness = self .harness
597617 harness .set_leader (True )
618+ harness .charm ._stored .tracing_status_error = None
598619
599620 relation_id = harness .add_relation ("s3-backend" , "s3-integrator" )
600621 harness .add_relation_unit (relation_id , "s3-integrator/0" )
@@ -673,6 +694,7 @@ def test_s3_relation_replay_failure_sets_blocked_status(self, _mock_add):
673694 )
674695
675696 harness .set_leader (True )
697+ harness .charm ._stored .tracing_status_error = None
676698 with patch .object (harness .charm , "api_port" , return_value = 17070 ):
677699 harness .evaluate_status ()
678700 self .assertIsInstance (harness .charm .unit .status , BlockedStatus )
@@ -682,6 +704,7 @@ def test_s3_relation_replay_failure_sets_blocked_status(self, _mock_add):
682704 def test_s3_relation_credentials_updated (self , mock_add_s3_credentials ):
683705 harness = self .harness
684706 harness .set_leader (True )
707+ harness .charm ._stored .tracing_status_error = None
685708
686709 relation_id = harness .add_relation ("s3-backend" , "s3-integrator" )
687710 harness .add_relation_unit (relation_id , "s3-integrator/0" )
@@ -762,6 +785,7 @@ def test_s3_relation_credentials_gone_non_leader(self, mock_remove_s3_credential
762785 def test_s3_relation_credentials_gone_failure_sets_blocked (self , _mock_remove ):
763786 harness = self .harness
764787 harness .set_leader (True )
788+ harness .charm ._stored .tracing_status_error = None
765789
766790 relation_id = harness .add_relation ("s3-backend" , "s3-integrator" )
767791 harness .add_relation_unit (relation_id , "s3-integrator/0" )
0 commit comments