Skip to content

Commit a712519

Browse files
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
1 parent 737794a commit a712519

File tree

2 files changed

+34
-33
lines changed

2 files changed

+34
-33
lines changed

jupyter_server/serverapp.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2836,7 +2836,7 @@ def initialize(
28362836
self.init_mime_overrides()
28372837
self.init_shutdown_no_activity()
28382838
self.init_metrics()
2839-
2839+
28402840
# Start metrics server after webapp is initialized, so handlers can be properly excluded
28412841
if self.metrics_port:
28422842
self._start_metrics_server(self.metrics_port)
@@ -3066,9 +3066,9 @@ def _start_metrics_server(self, port):
30663066
# Check if the metrics server actually started (has a port)
30673067
if not hasattr(self.metrics_server, "port") or self.metrics_server.port is None:
30683068
raise RuntimeError("Metrics server failed to start - no port assigned")
3069-
3069+
30703070
self.log.info(f"Metrics server is running on port {self.metrics_server.port}")
3071-
3071+
30723072
except Exception as e:
30733073
self.log.error(f"Failed to start metrics server: {e}")
30743074
raise RuntimeError(f"Metrics server is required but failed to start: {e}")

tests/test_metrics.py

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
"""Tests for Jupyter Server metrics functionality."""
22

3-
import pytest
4-
import requests
53
import time
64
from unittest.mock import patch
75

6+
import pytest
7+
import requests
8+
89
from jupyter_server.prometheus.server import PrometheusMetricsServer, start_metrics_server
910
from jupyter_server.serverapp import ServerApp
1011

@@ -13,7 +14,7 @@
1314
def metrics_server_app():
1415
"""Create a server app with metrics enabled on a specific port."""
1516
# Override the environment variable for this test
16-
with patch.dict('os.environ', {'JUPYTER_SERVER_METRICS_PORT': '9090'}):
17+
with patch.dict("os.environ", {"JUPYTER_SERVER_METRICS_PORT": "9090"}):
1718
app = ServerApp()
1819
# Set the metrics_port directly as a trait
1920
app.metrics_port = 9090
@@ -29,38 +30,38 @@ def metrics_server(metrics_server_app):
2930
time.sleep(0.1)
3031
yield server
3132
# Cleanup
32-
if hasattr(server, 'stop'):
33+
if hasattr(server, "stop"):
3334
server.stop()
3435

3536

3637
def test_metrics_server_starts(metrics_server):
3738
"""Test that the metrics server starts successfully."""
3839
assert metrics_server is not None
39-
assert hasattr(metrics_server, 'port')
40+
assert hasattr(metrics_server, "port")
4041
assert metrics_server.port == 9090
4142

4243

4344
def test_metrics_endpoint_accessible(metrics_server):
4445
"""Test that the metrics endpoint is accessible."""
45-
response = requests.get(f'http://localhost:{metrics_server.port}/metrics')
46+
response = requests.get(f"http://localhost:{metrics_server.port}/metrics")
4647
assert response.status_code == 200
47-
assert 'jupyter_server' in response.text
48+
assert "jupyter_server" in response.text
4849

4950

5051
def test_metrics_contains_kernel_metrics(metrics_server):
5152
"""Test that kernel metrics are present."""
52-
response = requests.get(f'http://localhost:{metrics_server.port}/metrics')
53+
response = requests.get(f"http://localhost:{metrics_server.port}/metrics")
5354
assert response.status_code == 200
5455
content = response.text
55-
assert 'jupyter_kernel_currently_running_total' in content
56+
assert "jupyter_kernel_currently_running_total" in content
5657

5758

5859
def test_metrics_contains_server_info(metrics_server):
5960
"""Test that server info metrics are present."""
60-
response = requests.get(f'http://localhost:{metrics_server.port}/metrics')
61+
response = requests.get(f"http://localhost:{metrics_server.port}/metrics")
6162
assert response.status_code == 200
6263
content = response.text
63-
assert 'jupyter_server_info' in content
64+
assert "jupyter_server_info" in content
6465

6566

6667
def test_metrics_server_with_authentication():
@@ -70,20 +71,20 @@ def test_metrics_server_with_authentication():
7071
app.authenticate_prometheus = True
7172
app.initialize([])
7273
app.identity_provider.token = "test_token"
73-
74+
7475
server = start_metrics_server(app, 9091)
7576
time.sleep(0.1)
76-
77+
7778
try:
7879
# Without token should fail
79-
response = requests.get(f'http://localhost:{server.port}/metrics')
80+
response = requests.get(f"http://localhost:{server.port}/metrics")
8081
assert response.status_code == 401
81-
82+
8283
# With token should succeed
83-
response = requests.get(f'http://localhost:{server.port}/metrics?token=test_token')
84+
response = requests.get(f"http://localhost:{server.port}/metrics?token=test_token")
8485
assert response.status_code == 200
8586
finally:
86-
if hasattr(server, 'stop'):
87+
if hasattr(server, "stop"):
8788
server.stop()
8889

8990

@@ -96,31 +97,31 @@ def test_metrics_server_port_conflict_handling():
9697
# Start first server
9798
server1 = start_metrics_server(app, 9092)
9899
time.sleep(0.1)
99-
100+
100101
try:
101102
# Try to start second server on same port
102103
server2 = start_metrics_server(app, 9092)
103104
time.sleep(0.1)
104-
105+
105106
# One of them should have failed to start or used a different port
106-
if server2 is not None and hasattr(server2, 'port'):
107+
if server2 is not None and hasattr(server2, "port"):
107108
assert server2.port != 9092 or server1.port != 9092
108109
finally:
109-
if hasattr(server1, 'stop'):
110+
if hasattr(server1, "stop"):
110111
server1.stop()
111-
if server2 is not None and hasattr(server2, 'stop'):
112+
if server2 is not None and hasattr(server2, "stop"):
112113
server2.stop()
113114

114115

115116
def test_metrics_server_disabled_when_port_zero():
116117
"""Test that metrics server is not started when port is 0."""
117-
with patch.dict('os.environ', {'JUPYTER_SERVER_METRICS_PORT': '0'}):
118+
with patch.dict("os.environ", {"JUPYTER_SERVER_METRICS_PORT": "0"}):
118119
app = ServerApp()
119120
app.metrics_port = 0
120121
app.initialize([])
121-
122+
122123
# Should not start metrics server
123-
assert not hasattr(app, 'metrics_server') or app.metrics_server is None
124+
assert not hasattr(app, "metrics_server") or app.metrics_server is None
124125

125126

126127
def test_metrics_url_logging_with_separate_server():
@@ -130,18 +131,18 @@ def test_metrics_url_logging_with_separate_server():
130131
app.authenticate_prometheus = True
131132
app.initialize([])
132133
app.identity_provider.token = "test_token"
133-
134+
134135
# Start metrics server
135136
server = start_metrics_server(app, 9093)
136137
time.sleep(0.1)
137-
138+
138139
try:
139140
# The URL should include the separate port
140141
expected_url = "http://localhost:9093/metrics?token=test_token"
141142
# This is a basic test - in practice you'd capture the log output
142143
assert server.port == 9093
143144
finally:
144-
if hasattr(server, 'stop'):
145+
if hasattr(server, "stop"):
145146
server.stop()
146147

147148

@@ -152,7 +153,7 @@ def test_metrics_url_logging_with_main_server():
152153
app.authenticate_prometheus = True
153154
app.initialize([])
154155
app.identity_provider.token = "test_token"
155-
156+
156157
# Should use main server's /metrics endpoint
157158
# This would be tested by checking the log output in practice
158-
assert app.metrics_port == 0
159+
assert app.metrics_port == 0

0 commit comments

Comments
 (0)