Skip to content

Commit 221f2b1

Browse files
fix: Update fastapi signature (#1238)
* fix: Update fastapi signature * Handle breaking change in minio 7.2.19 * Handle bucket_name becoming kwarg-only in minio 7.2.19 * fix: More Minio breaking changes --------- Co-authored-by: Dan Allan <[email protected]>
1 parent 6088e73 commit 221f2b1

File tree

4 files changed

+21
-15
lines changed

4 files changed

+21
-15
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ all = [
7373
"dask[dataframe]",
7474
"duckdb <1.4.0", # https://github.com/bluesky/tiled/issues/1144
7575
"entrypoints",
76-
"fastapi >=0.115.8",
76+
"fastapi >=0.122.0",
7777
"h5netcdf",
7878
"h5py",
7979
"hdf5plugin",

tiled/_tests/conftest.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -322,27 +322,29 @@ def minio_uri():
322322

323323
# For convenience, we split the bucket from a string
324324
url = urlparse(uri)
325-
bucket = url.path.lstrip("/")
325+
bucket_name = url.path.lstrip("/")
326326
uri = url._replace(netloc="{}:{}".format(url.hostname, url.port), path="")
327327

328328
client = Minio(
329-
uri.geturl(),
329+
endpoint=uri.geturl(),
330330
access_key=url.username,
331331
secret_key=url.password,
332332
secure=False,
333333
)
334334

335335
# Reset the state of the bucket after each test.
336-
if client.bucket_exists(bucket):
336+
if client.bucket_exists(bucket_name=bucket_name):
337337
delete_object_list = map(
338-
lambda x: DeleteObject(x.object_name),
339-
client.list_objects(bucket, recursive=True),
338+
lambda x: DeleteObject(object_name=x.object_name),
339+
client.list_objects(bucket_name=bucket_name, recursive=True),
340+
)
341+
errors = client.remove_objects(
342+
bucket_name=bucket_name, delete_object_list=delete_object_list
340343
)
341-
errors = client.remove_objects(bucket, delete_object_list)
342344
for error in errors:
343345
print("error occurred when deleting object", error)
344346
else:
345-
client.make_bucket(bucket)
347+
client.make_bucket(bucket_name=bucket_name)
346348

347349
else:
348350
raise pytest.skip("No TILED_TEST_BUCKET configured")

tiled/_tests/test_writing.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,24 +55,28 @@ def tmp_minio_bucket():
5555
if uri := os.getenv("TILED_TEST_BUCKET"):
5656
clean_uri, username, password = sanitize_uri(uri)
5757
minio_client = Minio(
58-
urlparse(clean_uri).netloc, # e.g. only "localhost:9000"
58+
endpoint=urlparse(clean_uri).netloc, # e.g. only "localhost:9000"
5959
access_key=username or "minioadmin",
6060
secret_key=password or "minioadmin",
6161
secure=False,
6262
)
6363

6464
bucket_name = f"test-{uuid.uuid4().hex}"
65-
minio_client.make_bucket(bucket_name)
65+
minio_client.make_bucket(bucket_name=bucket_name)
6666

6767
try:
6868
yield urljoin(uri, "/" + bucket_name) # full URI with credentials
6969
finally:
7070
# Cleanup: remove all objects and delete the bucket
7171
try:
72-
objects = minio_client.list_objects(bucket_name, recursive=True)
72+
objects = minio_client.list_objects(
73+
bucket_name=bucket_name, recursive=True
74+
)
7375
for obj in objects:
74-
minio_client.remove_object(bucket_name, obj.object_name)
75-
minio_client.remove_bucket(bucket_name)
76+
minio_client.remove_object(
77+
bucket_name=bucket_name, object_name=obj.object_name
78+
)
79+
minio_client.remove_bucket(bucket_name=bucket_name)
7680
except S3Error as e:
7781
print(f"Warning: failed to delete test bucket {bucket_name}: {e}")
7882

tiled/server/authentication.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ async def __call__(self, request: Request) -> Optional[str]:
112112
api_key: Optional[str] = request.headers.get(self.model.name)
113113
scheme, param = get_authorization_scheme_param(api_key)
114114
if not scheme or scheme.lower() == "bearer":
115-
return self.check_api_key(None, self.auto_error)
115+
return self.check_api_key(None)
116116
if scheme.lower() != self.scheme_name.lower():
117117
raise HTTPException(
118118
status_code=HTTP_400_BAD_REQUEST,
@@ -122,7 +122,7 @@ async def __call__(self, request: Request) -> Optional[str]:
122122
"'Bearer SECRET' or 'Apikey SECRET'. "
123123
),
124124
)
125-
return self.check_api_key(param, self.auto_error)
125+
return self.check_api_key(param)
126126

127127

128128
# The tokenUrl below is patched at app startup when we know it.

0 commit comments

Comments
 (0)