Skip to content

Commit d07e764

Browse files
committed
all tests are passing?
1 parent a351829 commit d07e764

File tree

4 files changed

+28
-21
lines changed

4 files changed

+28
-21
lines changed

packages/models-library/src/models_library/api_schemas_storage.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
from datetime import datetime
1010
from enum import Enum
11-
from typing import Annotated, Any, Literal, TypeAlias
11+
from typing import Annotated, Any, Literal, Self, TypeAlias
1212
from uuid import UUID
1313

1414
from pydantic import (
@@ -316,19 +316,18 @@ class FoldersBody(BaseModel):
316316
nodes_map: dict[NodeID, NodeID] = Field(default_factory=dict)
317317

318318
@model_validator(mode="after")
319-
@classmethod
320-
def ensure_consistent_entries(cls, values):
321-
source_node_keys = (NodeID(n) for n in values["source"].get("workbench", {}))
322-
if set(source_node_keys) != set(values["nodes_map"].keys()):
319+
def ensure_consistent_entries(self) -> Self:
320+
source_node_keys = (NodeID(n) for n in self.source.get("workbench", {}))
321+
if set(source_node_keys) != set(self.nodes_map.keys()):
323322
msg = "source project nodes do not fit with nodes_map entries"
324323
raise ValueError(msg)
325324
destination_node_keys = (
326-
NodeID(n) for n in values["destination"].get("workbench", {})
325+
NodeID(n) for n in self.destination.get("workbench", {})
327326
)
328-
if set(destination_node_keys) != set(values["nodes_map"].values()):
327+
if set(destination_node_keys) != set(self.nodes_map.values()):
329328
msg = "destination project nodes do not fit with nodes_map values"
330329
raise ValueError(msg)
331-
return values
330+
return self
332331

333332

334333
class SoftCopyBody(BaseModel):

packages/settings-library/src/settings_library/node_ports.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from datetime import timedelta
2-
from typing import Final
2+
from typing import Final, Self
33

44
from pydantic import Field, NonNegativeInt, PositiveInt, SecretStr, model_validator
55

@@ -22,14 +22,13 @@ def auth_required(self) -> bool:
2222
return self.STORAGE_USERNAME is not None and self.STORAGE_PASSWORD is not None
2323

2424
@model_validator(mode="after")
25-
@classmethod
26-
def _validate_auth_fields(cls, values):
27-
username = values.STORAGE_USERNAME
28-
password = values.STORAGE_PASSWORD
25+
def _validate_auth_fields(self) -> Self:
26+
username = self.STORAGE_USERNAME
27+
password = self.STORAGE_PASSWORD
2928
if (username is None) != (password is None):
3029
msg = f"Both {username=} and {password=} must be either set or unset!"
3130
raise ValueError(msg)
32-
return values
31+
return self
3332

3433

3534
class NodePortsSettings(BaseCustomSettings):

scripts/release/monitor_release/settings.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import os
22
from pathlib import Path
3-
from typing import Final
3+
from typing import Final, Self
44

55
from dotenv import load_dotenv
66
from pydantic import BaseModel, Field, HttpUrl, TypeAdapter, model_validator
@@ -47,7 +47,7 @@ class ReleaseSettings(BaseSettings):
4747
model_config = SettingsConfigDict(extra="ignore")
4848

4949
@model_validator(mode="after")
50-
def deduce_portainer_url(self):
50+
def deduce_portainer_url(self) -> Self:
5151
self.portainer_url = TypeAdapter(HttpUrl).validate_python(
5252
f"https://{self.PORTAINER_DOMAIN}"
5353
)

services/storage/tests/unit/test_utils.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import pytest
1515
from aiohttp import ClientSession
1616
from faker import Faker
17+
from models_library.api_schemas_storage import UNDEFINED_SIZE_TYPE
1718
from models_library.projects import ProjectID
1819
from models_library.projects_nodes_io import NodeID, SimcoreS3FileID
1920
from pydantic import ByteSize, HttpUrl, TypeAdapter
@@ -46,24 +47,30 @@ async def test_download_files(tmp_path: Path, httpbin_base_url: HttpUrl):
4647
[
4748
(-1, None, None, None, False),
4849
(0, None, None, None, False),
49-
(random.randint(1, 1000000), None, None, None, False),
50+
(random.randint(1, 1000000), None, None, None, False), # noqa: S311
5051
(-1, "some_valid_entity_tag", None, None, False),
5152
(0, "some_valid_entity_tag", None, None, False),
5253
(
53-
random.randint(1, 1000000),
54+
random.randint(1, 1000000), # noqa: S311
5455
"some_valid_entity_tag",
5556
"som_upload_id",
5657
None,
5758
False,
5859
),
5960
(
60-
random.randint(1, 1000000),
61+
random.randint(1, 1000000), # noqa: S311
6162
"some_valid_entity_tag",
6263
None,
6364
datetime.datetime.now(datetime.UTC),
6465
False,
6566
),
66-
(random.randint(1, 1000000), "some_valid_entity_tag", None, None, True),
67+
(
68+
random.randint(1, 1000000), # noqa: S311
69+
"some_valid_entity_tag",
70+
None,
71+
None,
72+
True,
73+
),
6774
],
6875
)
6976
def test_file_entry_valid(
@@ -84,7 +91,9 @@ def test_file_entry_valid(
8491
location_name=SimcoreS3DataManager.get_location_name(),
8592
sha256_checksum=None,
8693
)
87-
fmd.file_size = TypeAdapter(ByteSize).validate_python(file_size)
94+
fmd.file_size = TypeAdapter(UNDEFINED_SIZE_TYPE | ByteSize).validate_python(
95+
file_size
96+
)
8897
fmd.entity_tag = entity_tag
8998
fmd.upload_id = upload_id
9099
fmd.upload_expires_at = upload_expires_at

0 commit comments

Comments
 (0)