1010from jupyter_server .serverapp import ServerApp
1111
1212
13+ @pytest .fixture (autouse = True )
14+ def cleanup_metrics_servers ():
15+ """Ensure metrics servers are cleaned up after each test."""
16+ yield
17+ # Give any remaining threads time to clean up
18+ time .sleep (0.2 )
19+
20+
1321@pytest .fixture
1422def metrics_server_app ():
1523 """Create a server app with metrics enabled on a specific port."""
24+ # Use a unique port for this test
25+ port = 9090
1626 # Override the environment variable for this test
17- with patch .dict ("os.environ" , {"JUPYTER_SERVER_METRICS_PORT" : "9090" }):
27+ with patch .dict ("os.environ" , {"JUPYTER_SERVER_METRICS_PORT" : str ( port ) }):
1828 app = ServerApp ()
1929 # Set the metrics_port directly as a trait
20- app .metrics_port = 9090
30+ app .metrics_port = port
2131 app .initialize ([])
2232 return app
2333
@@ -32,6 +42,8 @@ def metrics_server(metrics_server_app):
3242 # Cleanup
3343 if hasattr (server , "stop" ):
3444 server .stop ()
45+ # Give time for cleanup
46+ time .sleep (0.2 )
3547
3648
3749def test_metrics_server_starts (metrics_server ):
@@ -86,6 +98,7 @@ def test_metrics_server_with_authentication():
8698 finally :
8799 if hasattr (server , "stop" ):
88100 server .stop ()
101+ time .sleep (0.2 )
89102
90103
91104def test_metrics_server_port_conflict_handling ():
@@ -109,8 +122,10 @@ def test_metrics_server_port_conflict_handling():
109122 finally :
110123 if hasattr (server1 , "stop" ):
111124 server1 .stop ()
125+ time .sleep (0.2 )
112126 if server2 is not None and hasattr (server2 , "stop" ):
113127 server2 .stop ()
128+ time .sleep (0.2 )
114129
115130
116131def test_metrics_server_disabled_when_port_zero ():
@@ -144,6 +159,7 @@ def test_metrics_url_logging_with_separate_server():
144159 finally :
145160 if hasattr (server , "stop" ):
146161 server .stop ()
162+ time .sleep (0.2 )
147163
148164
149165def test_metrics_url_logging_with_main_server ():
0 commit comments