@@ -197,30 +197,56 @@ def test_url_storage_resolver_helpers(faker: Faker, app_environment: EnvVarsDict
197197 )
198198 assert encoded_url .raw_parts [- 1 ] == f"{ encoded_file_id } :complete"
199199
200- web_request = make_mocked_request ("GET" , str (encoded_url ), app = app )
201- web_request [RQT_USERID_KEY ] = faker .pyint ()
200+ encoded_web_request = make_mocked_request ("GET" , str (encoded_url ), app = app )
201+ encoded_web_request [RQT_USERID_KEY ] = faker .pyint ()
202202
203203 # web -> storage
204- storage_url = _to_storage_url (web_request )
204+ encoded_storage_url = _to_storage_url (encoded_web_request )
205205 # Something like
206206 # http://storage:123/v5/locations/0/files/e3e70...c07cd%2Ff7...55%2Ffile.py:complete?user_id=8376
207207
208- assert storage_url .raw_parts [- 1 ] == web_request .url .raw_parts [- 1 ]
208+ assert encoded_storage_url .raw_parts [- 1 ] == encoded_web_request .url .raw_parts [- 1 ]
209209
210- assert storage_url .host == app_environment ["STORAGE_HOST" ]
211- assert storage_url .port == int (app_environment ["STORAGE_PORT" ])
212- assert storage_url .query ["user_id" ] == str (web_request [RQT_USERID_KEY ])
210+ assert encoded_storage_url .host == app_environment ["STORAGE_HOST" ]
211+ assert encoded_storage_url .port == int (app_environment ["STORAGE_PORT" ])
212+ assert encoded_storage_url .query ["user_id" ] == str (
213+ encoded_web_request [RQT_USERID_KEY ]
214+ )
213215
214216 # storage -> web
215- web_url : AnyUrl = _from_storage_url (
216- web_request ,
217- TypeAdapter (AnyUrl ).validate_python (f"{ storage_url } " ),
217+ encoded_web_url : AnyUrl = _from_storage_url (
218+ encoded_web_request ,
219+ TypeAdapter (AnyUrl ).validate_python (f"{ encoded_storage_url } " ),
218220 url_encode = None ,
219221 )
220222
221- assert storage_url .host != web_url .host
222- assert storage_url .port != web_url .port
223+ assert encoded_storage_url .host != encoded_web_url .host
224+ assert encoded_storage_url .port != encoded_web_url .port
225+
226+ assert isinstance (encoded_storage_url , URL ) # this is a bit inconvenient
227+ assert isinstance (encoded_web_url , AnyUrl )
228+ assert f"{ encoded_web_url } " == f"{ encoded_web_request .url } "
229+
230+ # since storage is FastAPI-base it now returns non encoded URLs
231+ non_encoded_url = URL (f"/v0/storage/locations/0/files/{ file_id } :complete" )
232+ non_encoded_web_request = make_mocked_request ("GET" , str (non_encoded_url ), app = app )
233+ non_encoded_web_request [RQT_USERID_KEY ] = faker .pyint ()
234+ non_encoded_storage_url = _to_storage_url (non_encoded_web_request )
235+ assert (
236+ non_encoded_storage_url .raw_parts [- 1 ]
237+ == non_encoded_web_request .url .raw_parts [- 1 ]
238+ )
239+ assert non_encoded_storage_url .host == app_environment ["STORAGE_HOST" ]
240+ assert non_encoded_storage_url .port == int (app_environment ["STORAGE_PORT" ])
241+ assert non_encoded_storage_url .query ["user_id" ] == str (
242+ non_encoded_web_request [RQT_USERID_KEY ]
243+ )
223244
224- assert isinstance (storage_url , URL ) # this is a bit inconvenient
225- assert isinstance (web_url , AnyUrl )
226- assert f"{ web_url } " == f"{ web_request .url } "
245+ assert (
246+ _from_storage_url (
247+ non_encoded_web_request ,
248+ TypeAdapter (AnyUrl ).validate_python (f"{ non_encoded_storage_url } " ),
249+ url_encode = file_id ,
250+ ).path
251+ == f"{ encoded_url } "
252+ )
0 commit comments