@@ -86,8 +86,16 @@ def __repr__(self):
86
86
return '<LiveServer listening at %s>' % self .url ()
87
87
88
88
89
+ def _rewrite_server_name (server_name , new_port ):
90
+ """Rewrite server port in ``server_name`` with ``new_port`` value."""
91
+ sep = ':'
92
+ if sep in server_name :
93
+ server_name , port = server_name .split (sep , 1 )
94
+ return sep .join ((server_name , new_port ))
95
+
96
+
89
97
@pytest .fixture (scope = 'function' )
90
- def live_server (request , app ):
98
+ def live_server (request , app , monkeypatch ):
91
99
"""Run application in a separate process.
92
100
93
101
When the ``live_server`` fixture is applyed, the ``url_for`` function
@@ -107,25 +115,14 @@ def test_server_is_up_and_running(live_server):
107
115
port = s .getsockname ()[1 ]
108
116
s .close ()
109
117
110
- def rewrite_server_name (server_name , new_port ):
111
- """Rewrite server port in ``server_name`` with ``new_port`` value."""
112
- sep = ':'
113
- if sep in server_name :
114
- server_name , port = server_name .split (sep , 1 )
115
- return sep .join ((server_name , new_port ))
116
-
117
118
# Explicitly set application ``SERVER_NAME`` for test suite
118
119
# and restore original value on test teardown.
119
- original_server_name = app .config ['SERVER_NAME' ]
120
- server_name = original_server_name or 'localhost'
121
- app .config ['SERVER_NAME' ] = rewrite_server_name (server_name , str (port ))
122
-
123
- def restore_server_name ():
124
- app .config ['SERVER_NAME' ] = original_server_name
120
+ server_name = app .config ['SERVER_NAME' ] or 'localhost'
121
+ monkeypatch .setitem (app .config , 'SERVER_NAME' ,
122
+ _rewrite_server_name (server_name , str (port )))
125
123
126
124
server = LiveServer (app , port )
127
125
request .addfinalizer (server .stop )
128
- request .addfinalizer (restore_server_name )
129
126
return server
130
127
131
128
0 commit comments