Skip to content

Commit a3280e3

Browse files
committed
revert
1 parent 403864c commit a3280e3

File tree

1 file changed

+1
-127
lines changed

1 file changed

+1
-127
lines changed

services/web/server/tests/unit/with_dbs/03/test_storage_handlers.py

Lines changed: 1 addition & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,10 @@
55

66

77
import json
8-
import urllib.parse
98
from typing import Any
109

1110
import pytest
12-
from aiohttp import web
13-
from aiohttp.test_utils import TestClient, make_mocked_request
14-
from faker import Faker
11+
from aiohttp.test_utils import TestClient
1512
from models_library.api_schemas_storage import (
1613
FileUploadCompleteResponse,
1714
FileUploadLinks,
@@ -23,14 +20,7 @@
2320
from pytest_simcore.helpers.typing_env import EnvVarsDict
2421
from pytest_simcore.helpers.webserver_login import UserInfoDict
2522
from servicelib.aiohttp.rest_responses import wrap_as_envelope
26-
from servicelib.request_keys import RQT_USERID_KEY
2723
from simcore_postgres_database.models.users import UserRole
28-
from simcore_service_webserver.application_settings import setup_settings
29-
from simcore_service_webserver.storage._handlers import (
30-
_from_storage_url,
31-
_to_storage_url,
32-
)
33-
from yarl import URL
3424

3525

3626
@pytest.fixture
@@ -175,119 +165,3 @@ async def test_openapi_regression_test(
175165
decoded_response = await response.json()
176166
assert decoded_response["error"] is None
177167
assert decoded_response["data"] is not None
178-
179-
180-
def test_url_storage_resolver_helpers(faker: Faker, app_environment: EnvVarsDict):
181-
app = web.Application()
182-
setup_settings(app)
183-
184-
# NOTE: careful, first we need to encode the "/" in this file path.
185-
# For that we need safe="" option
186-
assert urllib.parse.quote("/") == "/"
187-
assert urllib.parse.quote("/", safe="") == "%2F"
188-
assert urllib.parse.quote("%2F", safe="") == "%252F"
189-
190-
file_id = f"{faker.uuid4()}/{faker.uuid4()}/file.py"
191-
encoded_file_id = urllib.parse.quote(file_id, safe="")
192-
assert "%2F" in encoded_file_id
193-
assert "%252F" not in encoded_file_id
194-
195-
encoded_url = URL(
196-
f"/v0/storage/locations/0/files/{encoded_file_id}:complete", encoded=True
197-
)
198-
assert encoded_url.raw_parts[-1] == f"{encoded_file_id}:complete"
199-
200-
encoded_web_request = make_mocked_request("GET", str(encoded_url), app=app)
201-
encoded_web_request[RQT_USERID_KEY] = faker.pyint()
202-
203-
# web -> storage
204-
encoded_storage_url = _to_storage_url(encoded_web_request)
205-
# Something like
206-
# http://storage:123/v5/locations/0/files/e3e70...c07cd%2Ff7...55%2Ffile.py:complete?user_id=8376
207-
208-
assert encoded_storage_url.raw_parts[-1] == encoded_web_request.url.raw_parts[-1]
209-
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-
)
215-
216-
# storage -> web
217-
encoded_web_url: AnyUrl = _from_storage_url(
218-
encoded_web_request,
219-
TypeAdapter(AnyUrl).validate_python(f"{encoded_storage_url}"),
220-
url_encode=None,
221-
)
222-
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-
231-
def test_from_storage_url_with_fastapi_storage(
232-
faker: Faker, app_environment: EnvVarsDict
233-
):
234-
app = web.Application()
235-
setup_settings(app)
236-
# NOTE: aiohttp does not handle file_id containing / characters, but fastAPI does
237-
# frontend --> webserver --> storage --> webserver --> frontend and back
238-
# fully encoded --> / not encoded --> re-encode /
239-
file_id = f"{faker.uuid4()}/{faker.uuid4()}/file with space and öäè.py"
240-
fully_encoded_file_id = urllib.parse.quote(file_id, safe="")
241-
storage_fastapi_encoded_file_id = urllib.parse.quote(
242-
file_id, safe="/"
243-
) # NOTE: / is safe for fastapi
244-
assert file_id != fully_encoded_file_id
245-
assert file_id != storage_fastapi_encoded_file_id
246-
assert fully_encoded_file_id != storage_fastapi_encoded_file_id
247-
248-
webserver_url_path = URL(
249-
f"/v0/storage/locations/0/files/{fully_encoded_file_id}:complete"
250-
)
251-
assert (
252-
f"{webserver_url_path}"
253-
== f"/v0/storage/locations/0/files/{fully_encoded_file_id}:complete"
254-
)
255-
assert webserver_url_path.raw_parts[-1] == f"{fully_encoded_file_id}:complete"
256-
257-
storage_url_path = URL(
258-
f"/v0/locations/0/files/{storage_fastapi_encoded_file_id}:complete",
259-
)
260-
assert (
261-
f"{storage_url_path}"
262-
== f"/v0/locations/0/files/{storage_fastapi_encoded_file_id}:complete"
263-
)
264-
265-
webserver_request = make_mocked_request("POST", f"{webserver_url_path}", app=app)
266-
webserver_request[RQT_USERID_KEY] = faker.pyint()
267-
# assert webserver_request.url.path == webserver_url_path
268-
generated_storage_url = _to_storage_url(webserver_request)
269-
assert f"{generated_storage_url.path}" == storage_url_path
270-
271-
# since storage is FastAPI-base it now returns non encoded URLs
272-
# non_encoded_url = URL(f"/v0/storage/locations/0/files/{file_id}:complete")
273-
# non_encoded_web_request = make_mocked_request("GET", str(non_encoded_url), app=app)
274-
# non_encoded_web_request[RQT_USERID_KEY] = faker.pyint()
275-
# non_encoded_storage_url = _to_storage_url(non_encoded_web_request)
276-
# assert (
277-
# non_encoded_storage_url.raw_parts[-1]
278-
# == non_encoded_web_request.url.raw_parts[-1]
279-
# )
280-
# assert non_encoded_storage_url.host == app_environment["STORAGE_HOST"]
281-
# assert non_encoded_storage_url.port == int(app_environment["STORAGE_PORT"])
282-
# assert non_encoded_storage_url.query["user_id"] == str(
283-
# non_encoded_web_request[RQT_USERID_KEY]
284-
# )
285-
286-
# assert (
287-
# _from_storage_url(
288-
# non_encoded_web_request,
289-
# TypeAdapter(AnyUrl).validate_python(f"{non_encoded_storage_url}"),
290-
# url_encode=file_id,
291-
# ).path
292-
# == f"{encoded_url}"
293-
# )

0 commit comments

Comments
 (0)