Skip to content

Commit 23fa4ca

Browse files
committed
[DOP-25282] Fix test warnings
1 parent b91f008 commit 23fa4ca

File tree

21 files changed

+95
-81
lines changed

21 files changed

+95
-81
lines changed

pyproject.toml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,8 +237,16 @@ markers = [
237237
"hive: tests for Hive",
238238
"postgres: tests on Postgres",
239239
"oracle: tests for Oracle",
240+
"clickhouse: tests for Clickhouse",
241+
"mysql: tests for MySQL",
242+
"mssql: tests for MSSQL",
240243
"hdfs: tests for hadoop hdfs",
241244
"s3: tests for S3",
245+
"ftp: tests for FTP",
246+
"ftps: tests for FTPS",
247+
"sftp: tests for SFTP",
248+
"samba: tests for Samba",
249+
"webdav: tests for WebDAV",
242250
]
243251

244252
[tool.coverage.paths]
@@ -457,6 +465,8 @@ per-file-ignores = [
457465
# WPS432 Found magic number: 256
458466
"*migrations/*.py:WPS102,WPS432",
459467
"*db/models/*.py:WPS102,WPS432",
468+
# WPS404 Found complex default value
469+
"*server/api/*.py:WPS404",
460470
# WPS237 Found a too complex `f` string
461471
"*exceptions/*.py:WPS237",
462472
"*exceptions/__init__.py:F40,WPS410",

syncmaster/scheduler/transfer_job_manager.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ async def remove_orphan_jobs(self) -> None:
6666
self.scheduler.remove_job(str(job_id))
6767

6868
@staticmethod
69-
async def send_job_to_celery(transfer_id: int) -> None:
69+
async def send_job_to_celery(transfer_id: int) -> None: # noqa: WPS602, WPS217
7070
"""
7171
1. Do not pass additional arguments like settings,
7272
otherwise they will be serialized in jobs table.
@@ -90,8 +90,8 @@ async def send_job_to_celery(transfer_id: int) -> None:
9090
async with unit_of_work:
9191
run = await unit_of_work.run.create(
9292
transfer_id=transfer_id,
93-
source_creds=ReadAuthDataSchema(auth_data=credentials_source).dict(),
94-
target_creds=ReadAuthDataSchema(auth_data=credentials_target).dict(),
93+
source_creds=ReadAuthDataSchema(auth_data=credentials_source).model_dump(),
94+
target_creds=ReadAuthDataSchema(auth_data=credentials_target).model_dump(),
9595
type=RunType.SCHEDULED,
9696
)
9797

syncmaster/server/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def celery_factory(settings: Settings) -> Celery:
2727
app = Celery(
2828
__name__,
2929
broker=settings.broker.url,
30-
backend="db+" + settings.database.sync_url,
30+
backend="db+" + settings.database.sync_url, # noqa: WPS336
3131
)
3232
return app
3333

@@ -50,7 +50,7 @@ def application_factory(settings: Settings) -> FastAPI:
5050
application.exception_handler(HTTPException)(http_exception_handler)
5151
application.exception_handler(Exception)(unknown_exception_handler)
5252

53-
engine = async_engine_from_config(settings.database.dict(), prefix="")
53+
engine = async_engine_from_config(settings.database.model_dump(), prefix="")
5454
session_factory = create_session_factory(engine=engine)
5555

5656
application.dependency_overrides.update(

syncmaster/server/api/v1/auth.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# SPDX-FileCopyrightText: 2023-2024 MTS PJSC
22
# SPDX-License-Identifier: Apache-2.0
3+
from http.client import NOT_FOUND
34
from typing import Annotated
45

56
from fastapi import APIRouter, Depends, HTTPException, Request
@@ -38,7 +39,7 @@ async def token(
3839
client_id=form_data.client_id,
3940
client_secret=form_data.client_secret,
4041
)
41-
return AuthTokenSchema.parse_obj(token)
42+
return AuthTokenSchema.model_validate(token)
4243

4344

4445
@router.get("/callback")
@@ -50,7 +51,7 @@ async def auth_callback(
5051
):
5152
original_redirect_url = validate_state(state)
5253
if not original_redirect_url:
53-
raise HTTPException(status_code=400, detail="Invalid state parameter")
54+
raise HTTPException(status_code=NOT_FOUND, detail="Invalid state parameter")
5455
token = await auth_provider.get_token_authorization_code_grant(
5556
code=code,
5657
redirect_uri=auth_provider.settings.keycloak.redirect_uri,

syncmaster/server/api/v1/connections.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
async def read_connections(
3838
group_id: int,
3939
page: int = Query(gt=0, default=1),
40-
page_size: int = Query(gt=0, le=200, default=20),
40+
page_size: int = Query(gt=0, le=50, default=20), # noqa: WPS432
4141
type: list[ConnectionType] | None = Query(None),
4242
current_user: User = Depends(get_user(is_active=True)),
4343
unit_of_work: UnitOfWork = Depends(UnitOfWork),
@@ -122,12 +122,12 @@ async def create_connection(
122122
type=connection_data.type,
123123
description=connection_data.description,
124124
group_id=connection_data.group_id,
125-
data=connection_data.data.dict(),
125+
data=connection_data.data.model_dump(),
126126
)
127127

128128
await unit_of_work.credentials.create(
129129
connection_id=connection.id,
130-
data=connection_data.auth_data.dict(),
130+
data=connection_data.auth_data.model_dump(),
131131
)
132132

133133
credentials = await unit_of_work.credentials.read(connection.id)
@@ -183,7 +183,7 @@ async def read_connection(
183183

184184

185185
@router.put("/connections/{connection_id}")
186-
async def update_connection(
186+
async def update_connection( # noqa: WPS217, WPS238
187187
connection_id: int,
188188
connection_data: UpdateConnectionSchema,
189189
current_user: User = Depends(get_user(is_active=True)),
@@ -208,7 +208,7 @@ async def update_connection(
208208
raise ConnectionTypeUpdateError
209209

210210
existing_credentials = await unit_of_work.credentials.read(connection_id=connection_id)
211-
auth_data = connection_data.auth_data.dict()
211+
auth_data = connection_data.auth_data.model_dump()
212212
secret_field = connection_data.auth_data.secret_field
213213

214214
if auth_data[secret_field] is None:
@@ -222,7 +222,7 @@ async def update_connection(
222222
name=connection_data.name,
223223
type=connection_data.type,
224224
description=connection_data.description,
225-
data=connection_data.data.dict(),
225+
data=connection_data.data.model_dump(),
226226
)
227227
await unit_of_work.credentials.update(
228228
connection_id=connection_id,
@@ -277,7 +277,7 @@ async def delete_connection(
277277

278278

279279
@router.post("/connections/{connection_id}/copy_connection")
280-
async def copy_connection(
280+
async def copy_connection( # noqa: WPS238
281281
connection_id: int,
282282
copy_connection_data: ConnectionCopySchema,
283283
current_user: User = Depends(get_user(is_active=True)),

syncmaster/server/api/v1/groups.py

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# SPDX-FileCopyrightText: 2023-2024 MTS PJSC
22
# SPDX-License-Identifier: Apache-2.0
3+
from http.client import OK
4+
35
from fastapi import APIRouter, Depends, Query
46

57
from syncmaster.db.models import User
@@ -27,7 +29,7 @@
2729
@router.get("/groups")
2830
async def read_groups(
2931
page: int = Query(gt=0, default=1),
30-
page_size: int = Query(gt=0, le=200, default=20),
32+
page_size: int = Query(gt=0, le=50, default=20), # noqa: WPS432
3133
role: str | None = Query(default=None),
3234
current_user: User = Depends(get_user(is_active=True)),
3335
unit_of_work: UnitOfWork = Depends(UnitOfWork),
@@ -66,7 +68,7 @@ async def create_group(
6668
description=group_data.description,
6769
owner_id=current_user.id,
6870
)
69-
return ReadGroupSchema.from_orm(group)
71+
return ReadGroupSchema.model_validate(group, from_attributes=True)
7072

7173

7274
@router.get("/groups/{group_id}")
@@ -85,11 +87,14 @@ async def read_group(
8587

8688
group = await unit_of_work.group.read_by_id(group_id=group_id)
8789
user_role = await unit_of_work.group.get_member_role(group_id=group_id, user_id=current_user.id)
88-
return GroupWithUserRoleSchema.from_orm({"data": group, "role": user_role})
90+
return GroupWithUserRoleSchema(
91+
data=ReadGroupSchema.model_validate(group, from_attributes=True),
92+
role=GroupMemberRole(user_role),
93+
)
8994

9095

9196
@router.patch("/groups/{group_id}")
92-
async def update_group(
97+
async def update_group( # noqa: WPS217
9398
group_id: int,
9499
group_data: UpdateGroupSchema,
95100
current_user: User = Depends(get_user(is_active=True)),
@@ -129,7 +134,7 @@ async def update_group(
129134
new_user_id=previous_owner_id,
130135
role=GroupMemberRole.Guest,
131136
)
132-
return ReadGroupSchema.from_orm(group)
137+
return ReadGroupSchema.model_validate(group, from_attributes=True)
133138

134139

135140
@router.delete("/groups/{group_id}", dependencies=[Depends(get_user(is_superuser=True))])
@@ -139,14 +144,14 @@ async def delete_group(
139144
) -> StatusResponseSchema:
140145
async with unit_of_work:
141146
await unit_of_work.group.delete(group_id=group_id)
142-
return StatusResponseSchema(ok=True, status_code=200, message="Group was deleted")
147+
return StatusResponseSchema(ok=True, status_code=OK, message="Group was deleted")
143148

144149

145150
@router.get("/groups/{group_id}/users")
146151
async def read_group_users(
147152
group_id: int,
148153
page: int = Query(gt=0, default=1),
149-
page_size: int = Query(gt=0, le=200, default=20),
154+
page_size: int = Query(gt=0, le=50, default=20), # noqa: WPS432
150155
current_user: User = Depends(get_user(is_active=True)),
151156
unit_of_work: UnitOfWork = Depends(UnitOfWork),
152157
) -> UserPageSchemaAsGroupMember:
@@ -192,7 +197,7 @@ async def update_user_role_group(
192197
role=update_user_data.role,
193198
)
194199

195-
return AddUserSchema.from_orm(result)
200+
return AddUserSchema.model_validate(result, from_attributes=True)
196201

197202

198203
@router.post("/groups/{group_id}/users/{user_id}")
@@ -226,7 +231,7 @@ async def add_user_to_group(
226231
)
227232
return StatusResponseSchema(
228233
ok=True,
229-
status_code=200,
234+
status_code=OK,
230235
message="User was successfully added to group",
231236
)
232237

@@ -256,4 +261,4 @@ async def delete_user_from_group(
256261
group_id=group_id,
257262
target_user_id=user_id,
258263
)
259-
return StatusResponseSchema(ok=True, status_code=200, message="User was successfully removed from group")
264+
return StatusResponseSchema(ok=True, status_code=OK, message="User was successfully removed from group")

syncmaster/server/api/v1/queue.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
async def read_queues(
2626
group_id: int,
2727
page: int = Query(gt=0, default=1),
28-
page_size: int = Query(gt=0, le=200, default=20),
28+
page_size: int = Query(gt=0, le=50, default=20), # noqa: WPS432
2929
current_user: User = Depends(get_user(is_active=True)),
3030
unit_of_work: UnitOfWork = Depends(UnitOfWork),
3131
search_query: str | None = Query(
@@ -68,7 +68,7 @@ async def read_queue(
6868
queue = await unit_of_work.queue.read_by_id(
6969
queue_id=queue_id,
7070
)
71-
return ReadQueueSchema.from_orm(queue)
71+
return ReadQueueSchema.model_validate(queue, from_attributes=True)
7272

7373

7474
@router.post("/queues", description="Create new queue")
@@ -88,9 +88,9 @@ async def create_queue(
8888
raise ActionNotAllowedError
8989

9090
async with unit_of_work:
91-
queue = await unit_of_work.queue.create(queue_data.dict())
91+
queue = await unit_of_work.queue.create(queue_data.model_dump())
9292

93-
return ReadQueueSchema.from_orm(queue)
93+
return ReadQueueSchema.model_validate(queue, from_attributes=True)
9494

9595

9696
@router.patch("/queues/{queue_id}", description="Updating queue information")
@@ -116,7 +116,7 @@ async def update_queue(
116116
queue_id=queue_id,
117117
queue_data=queue_data,
118118
)
119-
return ReadQueueSchema.from_orm(queue)
119+
return ReadQueueSchema.model_validate(queue, from_attributes=True)
120120

121121

122122
@router.delete("/queues/{queue_id}", description="Delete queue by id")

syncmaster/server/api/v1/runs.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ async def read_runs(
3333
transfer_id: int,
3434
unit_of_work: UnitOfWork = Depends(UnitOfWork),
3535
page: int = Query(gt=0, default=1),
36-
page_size: int = Query(gt=0, le=200, default=20),
36+
page_size: int = Query(gt=0, le=50, default=20), # noqa: WPS432
3737
status: list[Status] | None = Query(default=None),
3838
started_at_since: datetime | None = Query(default=None),
3939
started_at_until: datetime | None = Query(default=None),
@@ -76,11 +76,11 @@ async def read_run(
7676
if resource_role == Permission.NONE:
7777
raise TransferNotFoundError
7878

79-
return ReadRunSchema.from_orm(run)
79+
return ReadRunSchema.model_validate(run, from_attributes=True)
8080

8181

8282
@router.post("/runs")
83-
async def start_run(
83+
async def start_run( # noqa: WPS217
8484
create_run_data: CreateRunSchema,
8585
settings: Annotated[Settings, Depends(Stub(Settings))],
8686
celery: Annotated[Celery, Depends(Stub(Celery))],
@@ -115,8 +115,8 @@ async def start_run(
115115
transfer_id=create_run_data.transfer_id,
116116
# Since fields with credentials may have different names (for example, S3 and Postgres have different names)
117117
# the work of checking fields and removing passwords is delegated to the ReadAuthDataSchema class
118-
source_creds=ReadAuthDataSchema(auth_data=credentials_source).dict(),
119-
target_creds=ReadAuthDataSchema(auth_data=credentials_target).dict(),
118+
source_creds=ReadAuthDataSchema(auth_data=credentials_source).model_dump(),
119+
target_creds=ReadAuthDataSchema(auth_data=credentials_target).model_dump(),
120120
type=RunType.MANUAL,
121121
)
122122

@@ -134,7 +134,7 @@ async def start_run(
134134
status=Status.FAILED,
135135
)
136136
raise CannotConnectToTaskQueueError(run_id=run.id) from e
137-
return ReadRunSchema.from_orm(run)
137+
return ReadRunSchema.model_validate(run, from_attributes=True)
138138

139139

140140
@router.post("/runs/{run_id}/stop")
@@ -160,4 +160,4 @@ async def stop_run(
160160
async with unit_of_work:
161161
run = await unit_of_work.run.stop(run_id=run_id)
162162
# TODO: add immediate stop transfer after stop Run
163-
return ReadRunSchema.from_orm(run)
163+
return ReadRunSchema.model_validate(run, from_attributes=True)

0 commit comments

Comments
 (0)