xBis7 commented on code in PR #62127:
URL: https://github.com/apache/airflow/pull/62127#discussion_r2828035816


##########
shared/observability/tests/observability/metrics/test_stats.py:
##########
@@ -102,127 +92,98 @@ def test_decr(self):
 
     def test_enabled_by_config(self):
         """Test that enabling this sets the right instance properties"""
-        with conf_vars({("metrics", "statsd_on"): "True"}):
-            importlib.reload(airflow_shared.observability.metrics.stats)
-            airflow_shared.observability.metrics.stats.Stats.initialize(
-                is_statsd_datadog_enabled=False,
-                is_statsd_on=True,
-                is_otel_on=False,
+        importlib.reload(airflow_shared.observability.metrics.stats)
+        airflow_shared.observability.metrics.stats.Stats.initialize(
+            factory=lambda: statsd_logger.get_statsd_logger(
+                stats_class=statsd.StatsClient,
+                host="localhost",
+                port="1234",
+                prefix="airflow",
             )
-            assert 
isinstance(airflow_shared.observability.metrics.stats.Stats.statsd, 
statsd.StatsClient)
-            assert not 
hasattr(airflow_shared.observability.metrics.stats.Stats, "dogstatsd")
+        )
+        assert 
isinstance(airflow_shared.observability.metrics.stats.Stats.statsd, 
statsd.StatsClient)
+        assert not hasattr(airflow_shared.observability.metrics.stats.Stats, 
"dogstatsd")
         # Avoid side-effects
         importlib.reload(airflow_shared.observability.metrics.stats)
 
     def test_load_custom_statsd_client(self):
-        with conf_vars(
-            {
-                ("metrics", "statsd_on"): "True",
-                ("metrics", "statsd_custom_client_path"): 
f"{__name__}.CustomStatsd",
-            }
-        ):
-            importlib.reload(airflow_shared.observability.metrics.stats)
-            airflow_shared.observability.metrics.stats.Stats.initialize(
-                is_statsd_datadog_enabled=False,
-                is_statsd_on=True,
-                is_otel_on=False,
-            )
-            assert 
isinstance(airflow_shared.observability.metrics.stats.Stats.statsd, 
CustomStatsd)
-        # Avoid side-effects
         importlib.reload(airflow_shared.observability.metrics.stats)
-
-    def test_load_invalid_custom_stats_client(self):
-        with conf_vars(
-            {
-                ("metrics", "statsd_on"): "True",
-                ("metrics", "statsd_custom_client_path"): 
f"{__name__}.InvalidCustomStatsd",
-            }
-        ):
-            importlib.reload(airflow_shared.observability.metrics.stats)
-            airflow_shared.observability.metrics.stats.Stats.initialize(
-                is_statsd_datadog_enabled=False,
-                is_statsd_on=True,
-                is_otel_on=False,
-            )
-            error_message = re.escape(
-                "Your custom StatsD client must extend the statsd."
-                "StatsClient in order to ensure backwards compatibility."
+        airflow_shared.observability.metrics.stats.Stats.initialize(
+            factory=lambda: statsd_logger.get_statsd_logger(
+                stats_class=CustomStatsd,
+                host="localhost",
+                port="1234",
+                prefix="airflow",
             )
-            # we assert for Exception here instead of AirflowConfigException 
to not import from shared configuration
-            with pytest.raises(Exception, match=error_message):
-                
airflow_shared.observability.metrics.stats.Stats.incr("empty_key")
+        )
+        assert 
isinstance(airflow_shared.observability.metrics.stats.Stats.statsd, 
CustomStatsd)
+        # Avoid side-effects
         importlib.reload(airflow_shared.observability.metrics.stats)
 
     def test_load_allow_list_validator(self):
-        with conf_vars(
-            {
-                ("metrics", "statsd_on"): "True",
-                ("metrics", "metrics_allow_list"): "name1,name2",
-            }
-        ):
-            importlib.reload(airflow_shared.observability.metrics.stats)
-            airflow_shared.observability.metrics.stats.Stats.initialize(
-                is_statsd_datadog_enabled=False,
-                is_statsd_on=True,
-                is_otel_on=False,
-            )
-            assert isinstance(
-                
airflow_shared.observability.metrics.stats.Stats.metrics_validator,
-                PatternAllowListValidator,
-            )
-            assert 
airflow_shared.observability.metrics.stats.Stats.metrics_validator.validate_list
 == (
-                "name1",
-                "name2",
+        importlib.reload(airflow_shared.observability.metrics.stats)
+        airflow_shared.observability.metrics.stats.Stats.initialize(
+            factory=lambda: statsd_logger.get_statsd_logger(
+                stats_class=statsd.StatsClient,
+                host="localhost",
+                port="1234",
+                prefix="airflow",
+                metrics_allow_list="name1,name2",
             )
+        )
+        assert isinstance(
+            airflow_shared.observability.metrics.stats.Stats.metrics_validator,
+            PatternAllowListValidator,
+        )
+        assert 
airflow_shared.observability.metrics.stats.Stats.metrics_validator.validate_list
 == (
+            "name1",
+            "name2",
+        )
         # Avoid side-effects
         importlib.reload(airflow_shared.observability.metrics.stats)
 
     def test_load_block_list_validator(self):
-        with conf_vars(
-            {
-                ("metrics", "statsd_on"): "True",
-                ("metrics", "metrics_block_list"): "name1,name2",
-            }
-        ):
-            importlib.reload(airflow_shared.observability.metrics.stats)
-            airflow_shared.observability.metrics.stats.Stats.initialize(
-                is_statsd_datadog_enabled=False,
-                is_statsd_on=True,
-                is_otel_on=False,
-            )
-            assert isinstance(
-                
airflow_shared.observability.metrics.stats.Stats.metrics_validator,
-                PatternBlockListValidator,
-            )
-            assert 
airflow_shared.observability.metrics.stats.Stats.metrics_validator.validate_list
 == (
-                "name1",
-                "name2",
+        importlib.reload(airflow_shared.observability.metrics.stats)
+        airflow_shared.observability.metrics.stats.Stats.initialize(
+            factory=lambda: statsd_logger.get_statsd_logger(
+                stats_class=statsd.StatsClient,
+                host="localhost",
+                port="1234",
+                prefix="airflow",
+                metrics_block_list="name1,name2",
             )
+        )
+        assert isinstance(
+            airflow_shared.observability.metrics.stats.Stats.metrics_validator,
+            PatternBlockListValidator,
+        )
+        assert 
airflow_shared.observability.metrics.stats.Stats.metrics_validator.validate_list
 == (
+            "name1",
+            "name2",
+        )
         # Avoid side-effects
         importlib.reload(airflow_shared.observability.metrics.stats)
 
     def 
test_load_allow_and_block_list_validator_loads_only_allow_list_validator(self):
-        with conf_vars(
-            {
-                ("metrics", "statsd_on"): "True",
-                ("metrics", "metrics_allow_list"): "name1,name2",
-                ("metrics", "metrics_block_list"): "name1,name2",
-            }
-        ):
-            importlib.reload(airflow_shared.observability.metrics.stats)
-            airflow_shared.observability.metrics.stats.Stats.initialize(
-                is_statsd_datadog_enabled=False,
-                is_statsd_on=True,
-                is_otel_on=False,
-            )
-            assert isinstance(
-                
airflow_shared.observability.metrics.stats.Stats.metrics_validator,
-                PatternAllowListValidator,
-            )
-            assert 
airflow_shared.observability.metrics.stats.Stats.metrics_validator.validate_list
 == (
-                "name1",
-                "name2",
+        importlib.reload(airflow_shared.observability.metrics.stats)
+        airflow_shared.observability.metrics.stats.Stats.initialize(
+            factory=lambda: statsd_logger.get_statsd_logger(
+                stats_class=statsd.StatsClient,
+                host="localhost",
+                port="1234",
+                prefix="airflow",
+                metrics_allow_list="name1,name2",
+                metrics_block_list="name1,name2",
             )
+        )

Review Comment:
   Fixed.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to