|
| 1 | +""" |
| 2 | +Unit tests for redis.observability public API exports. |
| 3 | +
|
| 4 | +These tests verify that all symbols exported from redis.observability |
| 5 | +are correctly re-exported and match the original implementations. |
| 6 | +""" |
| 7 | + |
| 8 | +import pytest |
| 9 | + |
| 10 | + |
| 11 | +class TestPublicAPIExports: |
| 12 | + """Tests for public API exports from redis.observability.""" |
| 13 | + |
| 14 | + def test_otel_config_reexport(self): |
| 15 | + """Test that OTelConfig is correctly re-exported.""" |
| 16 | + from redis.observability import OTelConfig |
| 17 | + from redis.observability.config import OTelConfig as OriginalOTelConfig |
| 18 | + |
| 19 | + assert OTelConfig is OriginalOTelConfig |
| 20 | + |
| 21 | + def test_metric_group_reexport(self): |
| 22 | + """Test that MetricGroup is correctly re-exported.""" |
| 23 | + from redis.observability import MetricGroup |
| 24 | + from redis.observability.config import MetricGroup as OriginalMetricGroup |
| 25 | + |
| 26 | + assert MetricGroup is OriginalMetricGroup |
| 27 | + |
| 28 | + def test_telemetry_option_reexport(self): |
| 29 | + """Test that TelemetryOption is correctly re-exported.""" |
| 30 | + from redis.observability import TelemetryOption |
| 31 | + from redis.observability.config import TelemetryOption as OriginalTelemetryOption |
| 32 | + |
| 33 | + assert TelemetryOption is OriginalTelemetryOption |
| 34 | + |
| 35 | + def test_observability_instance_reexport(self): |
| 36 | + """Test that ObservabilityInstance is correctly re-exported.""" |
| 37 | + from redis.observability import ObservabilityInstance |
| 38 | + from redis.observability.providers import ( |
| 39 | + ObservabilityInstance as OriginalObservabilityInstance, |
| 40 | + ) |
| 41 | + |
| 42 | + assert ObservabilityInstance is OriginalObservabilityInstance |
| 43 | + |
| 44 | + def test_get_observability_instance_reexport(self): |
| 45 | + """Test that get_observability_instance is correctly re-exported.""" |
| 46 | + from redis.observability import get_observability_instance |
| 47 | + from redis.observability.providers import ( |
| 48 | + get_observability_instance as original_get_observability_instance, |
| 49 | + ) |
| 50 | + |
| 51 | + assert get_observability_instance is original_get_observability_instance |
| 52 | + |
| 53 | + def test_reset_observability_instance_reexport(self): |
| 54 | + """Test that reset_observability_instance is correctly re-exported.""" |
| 55 | + from redis.observability import reset_observability_instance |
| 56 | + from redis.observability.providers import ( |
| 57 | + reset_observability_instance as original_reset_observability_instance, |
| 58 | + ) |
| 59 | + |
| 60 | + assert reset_observability_instance is original_reset_observability_instance |
| 61 | + |
| 62 | + def test_all_exports_defined(self): |
| 63 | + """Test that __all__ contains all expected exports.""" |
| 64 | + import redis.observability as obs |
| 65 | + |
| 66 | + expected_exports = { |
| 67 | + "OTelConfig", |
| 68 | + "MetricGroup", |
| 69 | + "TelemetryOption", |
| 70 | + "ObservabilityInstance", |
| 71 | + "get_observability_instance", |
| 72 | + "reset_observability_instance", |
| 73 | + } |
| 74 | + |
| 75 | + assert set(obs.__all__) == expected_exports |
| 76 | + |
| 77 | + def test_all_exports_are_accessible(self): |
| 78 | + """Test that all items in __all__ are actually accessible.""" |
| 79 | + import redis.observability as obs |
| 80 | + |
| 81 | + for name in obs.__all__: |
| 82 | + assert hasattr(obs, name), f"{name} is in __all__ but not accessible" |
| 83 | + assert getattr(obs, name) is not None, f"{name} is None" |
| 84 | + |
0 commit comments