@@ -82,12 +82,12 @@ def run_child_server(server_name: str, host: str, port: int) -> RunningServer:
82
82
try :
83
83
started_ok = wait_net_service (host , port , 5 )
84
84
if started_ok :
85
- log ('Server ' + server_name + ' started OK' )
85
+ log (f 'Server { server_name } started OK' )
86
86
else :
87
- log ('Server ' + server_name + ' failed to start' )
87
+ log (f 'Server { server_name } failed to start' )
88
88
raise RuntimeError ('Server failed to start' )
89
89
except Exception as exc :
90
- log ('Got exception: ' , repr ( exc ) )
90
+ log (f 'Got exception: { exc !r } ' )
91
91
log (f'Terminate subprocess with { server_name } server...' )
92
92
process .terminate ()
93
93
log (f'Wait subprocess with { server_name } server (PID { process .pid } )...' )
@@ -100,7 +100,7 @@ def run_child_server(server_name: str, host: str, port: int) -> RunningServer:
100
100
@staticmethod
101
101
def check_response (response : Response ) -> None :
102
102
if response .status_code != 200 :
103
- raise Exception ('Bad server reply code: ' + str ( response .status_code ) )
103
+ raise Exception (f 'Bad server reply code: { response .status_code } ' )
104
104
105
105
def get_stored_files (self ) -> Sequence [FileOnServer ]:
106
106
assert self ._base_url is not None
@@ -134,14 +134,14 @@ def upload_file(self, original_filename: str, filedata: bytes) -> None:
134
134
# filename*=utf-8\'\'%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9.%D1%84%D0%B0%D0%B9%D0%BB
135
135
# This is why I'm constructing multipart message manually
136
136
137
- boundary = b'Ab522e64be24449aa3131245da23b3yZ'
138
- encoded_filename = original_filename .encode ('utf-8' )
139
- payload = b'--' + boundary + b'\r \n Content-Disposition: form-data' \
140
- + b'; name="file"; filename="' + encoded_filename \
141
- + b'"\r \n \r \n ' + filedata + b'\r \n --' + boundary + b'--\r \n '
137
+ boundary = 'Ab522e64be24449aa3131245da23b3yZ'
142
138
143
- content_type = 'multipart/form-data; boundary=' + boundary .decode ('utf-8' )
144
- headers = {'Content-Type' : content_type }
139
+ payload_prefix = \
140
+ f'--{ boundary } \r \n Content-Disposition: form-data; name="file"; filename="{ original_filename } "\r \n \r \n '
141
+ payload_postfix = f'\r \n --{ boundary } --\r \n '
142
+ payload = payload_prefix .encode ('utf-8' ) + filedata + payload_postfix .encode ('utf-8' )
143
+
144
+ headers = {'Content-Type' : f'multipart/form-data; boundary={ boundary } ' }
145
145
146
146
response = requests .post (url , data = payload , headers = headers )
147
147
@@ -173,11 +173,11 @@ def remove_all_files(self) -> None:
173
173
def on_test_start (self , test_name : str ) -> None :
174
174
assert self ._server_name is not None
175
175
log ('=============================================' )
176
- log ('TEST: ' + self ._server_name + ': ' + test_name )
176
+ log (f 'TEST: { self ._server_name } : { test_name } ' )
177
177
log ('=============================================' )
178
178
179
179
def do_test_upload_file (self , name : str , data : bytes ) -> None :
180
- self .on_test_start ('FileUpload("' + name + ' ")' )
180
+ self .on_test_start (f 'FileUpload("{ name } ")' )
181
181
self .remove_all_files ()
182
182
self .assertEqual (0 , len (self .get_stored_files ()))
183
183
@@ -194,7 +194,7 @@ def do_test_upload_file(self, name: str, data: bytes) -> None:
194
194
self .assertEqual (0 , len (self .get_stored_files ()))
195
195
196
196
def do_test_upload_text (self , name : str , text : str ) -> None :
197
- self .on_test_start ('TextUpload("' + name + ' ")' )
197
+ self .on_test_start (f 'TextUpload("{ name } ")' )
198
198
self .remove_all_files ()
199
199
self .assertEqual (0 , len (self .get_stored_files ()))
200
200
@@ -267,8 +267,8 @@ def do_all_tests(self, server_name: str, base_url: str) -> None:
267
267
def run_server_and_do_all_tests (self , server_name : str ) -> None :
268
268
host = DEFAULT_LISTEN_HOST
269
269
port = DEFAULT_LISTEN_PORT
270
- base_url = 'http://' + host + ':' + str ( port )
271
- log ('RunServerAndDoAllTests("' + server_name + ' ") start' )
270
+ base_url = f 'http://{ host } : { port } '
271
+ log (f 'RunServerAndDoAllTests("{ server_name } ") start' )
272
272
server : RunningServer = self .run_child_server (server_name , host , port )
273
273
274
274
with server .temp_directory :
@@ -281,7 +281,7 @@ def run_server_and_do_all_tests(self, server_name: str) -> None:
281
281
server .process .wait ()
282
282
log (f'Subprocess with { server_name } server finished' )
283
283
284
- log ('RunServerAndDoAllTests("' + server_name + ' ") finished' )
284
+ log (f 'RunServerAndDoAllTests("{ server_name } ") finished' )
285
285
286
286
def test_cheroot (self ) -> None :
287
287
self .run_server_and_do_all_tests ('cheroot' )
@@ -315,10 +315,10 @@ def test_waitress(self) -> None:
315
315
def main () -> None :
316
316
server_name = sys .argv [1 ] if len (sys .argv ) > 1 else 'cheroot'
317
317
318
- log ('Begin testing ' + server_name + ' ...' )
318
+ log (f 'Begin testing { server_name } ...' )
319
319
test = ServerTestCase ()
320
320
if server_name .startswith ('http://' ) or server_name .startswith ('https://' ):
321
- log ('Testing external server: ' + server_name )
321
+ log (f 'Testing external server: { server_name } ' )
322
322
323
323
# Waiting for external service is not necessary since we have external waiting in CI
324
324
# using Docker image kolomenkin/wait-for-it
@@ -329,14 +329,14 @@ def main() -> None:
329
329
assert url .port is not None
330
330
started_ok = wait_net_service (url .hostname , url .port , 5 )
331
331
if started_ok :
332
- log ('Server ' + server_name + ' started OK' )
332
+ log (f 'Server { server_name } started OK' )
333
333
else :
334
- log ('Server ' + server_name + ' failed to start' )
334
+ log (f 'Server { server_name } failed to start' )
335
335
sys .exit (1 )
336
336
337
337
test .do_all_tests ('external' , server_name )
338
338
else :
339
- log ('Testing internal server: ' + server_name )
339
+ log (f 'Testing internal server: { server_name } ' )
340
340
test .run_server_and_do_all_tests (server_name )
341
341
342
342
0 commit comments