|
21 | 21 | from google.cloud.spanner_v1.metrics.spanner_metrics_tracer_factory import ( |
22 | 22 | SpannerMetricsTracerFactory, |
23 | 23 | ) |
| 24 | +from opentelemetry import metrics |
24 | 25 |
|
25 | 26 | pytest.importorskip("opentelemetry") |
26 | 27 | # Skip if semconv attributes are not present, as tracing wont' be enabled either |
27 | 28 | # pytest.importorskip("opentelemetry.semconv.attributes.otel_attributes") |
28 | 29 |
|
29 | 30 |
|
30 | | -def test_metrics_emission_with_failure_attempt(monkeypatch): |
| 31 | +@pytest.fixture(autouse=True) |
| 32 | +def patched_client(monkeypatch): |
31 | 33 | monkeypatch.setenv("SPANNER_ENABLE_BUILTIN_METRICS", "true") |
| 34 | + metrics.set_meter_provider(metrics.NoOpMeterProvider()) |
32 | 35 |
|
33 | 36 | # Remove the Tracer factory to avoid previously disabled factory polluting from other tests |
34 | 37 | if SpannerMetricsTracerFactory._metrics_tracer_factory is not None: |
35 | 38 | SpannerMetricsTracerFactory._metrics_tracer_factory = None |
36 | 39 |
|
37 | 40 | client = Client() |
38 | | - instance = client.instance("test-instance") |
| 41 | + yield client |
| 42 | + |
| 43 | + # Resetting |
| 44 | + metrics.set_meter_provider(metrics.NoOpMeterProvider()) |
| 45 | + SpannerMetricsTracerFactory._metrics_tracer_factory = None |
| 46 | + SpannerMetricsTracerFactory.current_metrics_tracer = None |
| 47 | + monkeypatch.setenv("SPANNER_ENABLE_BUILTIN_METRICS", "") |
| 48 | + |
| 49 | + |
| 50 | +def test_metrics_emission_with_failure_attempt(patched_client): |
| 51 | + instance = patched_client.instance("test-instance") |
39 | 52 | database = instance.database("example-db") |
40 | 53 | factory = SpannerMetricsTracerFactory() |
41 | 54 |
|
|
0 commit comments