Skip to content

Commit dd551e8

Browse files
authored
Fixes missing argument in Node validator class methods and minio dependency (#2033)
* Adding test for project nodes * Adds testing around project nodes * Adds missing requirements from simcore-sdk * Fixes missing dependencies
1 parent f5ffb14 commit dd551e8

File tree

8 files changed

+156
-45
lines changed

8 files changed

+156
-45
lines changed

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
)
1818
from .projects_nodes_ui import Position
1919
from .projects_state import RunningState
20-
from .services import SERVICE_KEY_RE, PROPERTY_KEY_RE
20+
from .services import PROPERTY_KEY_RE, SERVICE_KEY_RE
2121

2222
InputTypes = Union[
2323
int, bool, str, float, PortLink, SimCoreFileLink, DatCoreFileLink, DownloadLink
@@ -104,14 +104,14 @@ class Node(BaseModel):
104104

105105
@validator("thumbnail", pre=True)
106106
@classmethod
107-
def convert_empty_str_to_none(v):
107+
def convert_empty_str_to_none(cls, v):
108108
if isinstance(v, str) and v == "":
109109
return None
110110
return v
111111

112112
@validator("state", pre=True)
113113
@classmethod
114-
def convert_old_enum_name(v):
114+
def convert_old_enum_name(cls, v):
115115
if v == "FAILURE":
116116
return RunningState.FAILED
117117
return v
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# pylint:disable=unused-variable
2+
# pylint:disable=unused-argument
3+
# pylint:disable=redefined-outer-name
4+
5+
from typing import Dict
6+
7+
import pytest
8+
from models_library.projects_nodes import Node
9+
from models_library.projects_state import RunningState
10+
11+
12+
@pytest.fixture()
13+
def minimal_node_data_sample() -> Dict:
14+
return dict(
15+
key="simcore/services/dynamic/3dviewer",
16+
version="1.3.0-alpha",
17+
label="3D viewer human message",
18+
)
19+
20+
21+
def test_create_minimal_node(minimal_node_data_sample):
22+
node = Node(**minimal_node_data_sample)
23+
24+
# a nice way to see how the simplest node looks like
25+
assert node.inputs == {}
26+
assert node.outputs == {}
27+
assert node.state == RunningState.NOT_STARTED
28+
29+
assert node.parent is None
30+
assert node.progress is None
31+
32+
assert node.dict(exclude_unset=True) == minimal_node_data_sample
33+
34+
35+
def test_backwards_compatibility_node_data(minimal_node_data_sample):
36+
old_node_data = minimal_node_data_sample
37+
# found some old data with this aspect
38+
old_node_data.update({"thumbnail": "", "state": "FAILURE"})
39+
40+
node = Node(**old_node_data)
41+
42+
assert node.thumbnail is None
43+
assert node.state == RunningState.FAILED
44+
45+
assert node.dict(exclude_unset=True) != old_node_data

packages/simcore-sdk/requirements/_base.in

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
# Specifies third-party dependencies for 'simcore-sdk'
33
#
44
-c ../../../requirements/constraints.txt
5+
-r ../../../packages/postgres-database/requirements/_base.in
6+
-r ../../../packages/s3wrapper/requirements/_base.in
7+
-r ../../../packages/service-library/requirements/_base.in
8+
-r ../../../packages/models-library/requirements/_base.in
59

610
aiofiles
711
aiohttp

packages/simcore-sdk/requirements/_base.txt

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,50 @@
44
#
55
# pip-compile --output-file=requirements/_base.txt requirements/_base.in
66
#
7+
aiodebug==1.1.2 # via -r requirements/../../../packages/service-library/requirements/_base.in
78
aiofiles==0.5.0 # via -r requirements/_base.in
8-
aiohttp==3.7.3 # via -r requirements/_base.in
9-
aiopg[sa]==1.0.0 # via -r requirements/_base.in
9+
aiohttp==3.7.3 # via -r requirements/../../../packages/service-library/requirements/_base.in, -r requirements/_base.in, aiozipkin
10+
aiopg[sa]==1.0.0 # via -r requirements/../../../packages/service-library/requirements/_base.in, -r requirements/_base.in
11+
aiozipkin==0.7.1 # via -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt, -c requirements/../../../packages/postgres-database/requirements/../../../requirements/constraints.txt, -c requirements/../../../packages/s3wrapper/requirements/../../../requirements/constraints.txt, -c requirements/../../../packages/service-library/requirements/../../../requirements/constraints.txt, -c requirements/../../../requirements/constraints.txt, -r requirements/../../../packages/service-library/requirements/_base.in
1012
async-timeout==3.0.1 # via aiohttp
11-
attrs==20.3.0 # via -r requirements/_base.in, aiohttp
13+
attrs==20.3.0 # via -r requirements/../../../packages/service-library/requirements/_base.in, -r requirements/_base.in, aiohttp, jsonschema, openapi-core
14+
certifi==2020.11.8 # via minio
1215
chardet==3.0.4 # via aiohttp
16+
configparser==5.0.1 # via minio
1317
dataclasses==0.7 # via pydantic
1418
decorator==4.4.2 # via networkx
19+
dnspython==2.0.0 # via email-validator
20+
email-validator==1.1.2 # via pydantic
1521
idna-ssl==1.1.0 # via aiohttp
16-
idna==2.10 # via idna-ssl, yarl
22+
idna==2.10 # via email-validator, idna-ssl, yarl
23+
importlib-metadata==3.0.0 # via jsonschema
24+
isodate==0.6.0 # via openapi-core
25+
jsonschema==3.2.0 # via -r requirements/../../../packages/service-library/requirements/_base.in, openapi-spec-validator
26+
lazy-object-proxy==1.4.3 # via -r requirements/../../../packages/service-library/requirements/_base.in, openapi-core
27+
minio==6.0.2 # via -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt, -c requirements/../../../packages/postgres-database/requirements/../../../requirements/constraints.txt, -c requirements/../../../packages/s3wrapper/requirements/../../../requirements/constraints.txt, -c requirements/../../../packages/service-library/requirements/../../../requirements/constraints.txt, -c requirements/../../../requirements/constraints.txt, -r requirements/../../../packages/s3wrapper/requirements/_base.in
1728
multidict==4.7.6 # via aiohttp, yarl
1829
networkx==2.5 # via -r requirements/_base.in
19-
psycopg2-binary==2.8.6 # via -r requirements/_base.in, aiopg, sqlalchemy
20-
pydantic==1.7.2 # via -r requirements/_base.in
21-
pyyaml==5.3.1 # via -c requirements/../../../requirements/constraints.txt, trafaret-config
22-
six==1.15.0 # via tenacity
23-
sqlalchemy[postgresql_psycopg2binary]==1.3.20 # via -c requirements/../../../requirements/constraints.txt, aiopg
24-
tenacity==6.2.0 # via -r requirements/_base.in
30+
openapi-core==0.12.0 # via -r requirements/../../../packages/service-library/requirements/_base.in
31+
openapi-spec-validator==0.2.9 # via openapi-core
32+
prometheus-client==0.9.0 # via -r requirements/../../../packages/service-library/requirements/_base.in
33+
psycopg2-binary==2.8.6 # via -r requirements/../../../packages/service-library/requirements/_base.in, -r requirements/_base.in, aiopg, sqlalchemy
34+
pydantic[email]==1.7.2 # via -r requirements/../../../packages/models-library/requirements/_base.in, -r requirements/../../../packages/service-library/requirements/_base.in, -r requirements/_base.in
35+
pyrsistent==0.17.3 # via jsonschema
36+
python-dateutil==2.8.1 # via minio
37+
pytz==2020.4 # via minio
38+
pyyaml==5.3.1 # via -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt, -c requirements/../../../packages/postgres-database/requirements/../../../requirements/constraints.txt, -c requirements/../../../packages/s3wrapper/requirements/../../../requirements/constraints.txt, -c requirements/../../../packages/service-library/requirements/../../../requirements/constraints.txt, -c requirements/../../../requirements/constraints.txt, -r requirements/../../../packages/service-library/requirements/_base.in, openapi-spec-validator, trafaret-config
39+
six==1.15.0 # via isodate, jsonschema, openapi-core, openapi-spec-validator, python-dateutil, tenacity
40+
sqlalchemy[postgresql_psycopg2binary]==1.3.20 # via -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt, -c requirements/../../../packages/postgres-database/requirements/../../../requirements/constraints.txt, -c requirements/../../../packages/s3wrapper/requirements/../../../requirements/constraints.txt, -c requirements/../../../packages/service-library/requirements/../../../requirements/constraints.txt, -c requirements/../../../requirements/constraints.txt, -r requirements/../../../packages/postgres-database/requirements/_base.in, -r requirements/../../../packages/service-library/requirements/_base.in, aiopg
41+
strict-rfc3339==0.7 # via openapi-core
42+
tenacity==6.2.0 # via -r requirements/../../../packages/service-library/requirements/_base.in, -r requirements/_base.in
2543
trafaret-config==2.0.2 # via -r requirements/_base.in
26-
trafaret==2.1.0 # via trafaret-config
44+
trafaret==2.1.0 # via -r requirements/../../../packages/service-library/requirements/_base.in, trafaret-config
2745
typing-extensions==3.7.4.3 # via aiohttp, yarl
28-
yarl==1.5.1 # via aiohttp
46+
ujson==4.0.1 # via -r requirements/../../../packages/service-library/requirements/_base.in
47+
urllib3==1.26.2 # via -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt, -c requirements/../../../packages/postgres-database/requirements/../../../requirements/constraints.txt, -c requirements/../../../packages/s3wrapper/requirements/../../../requirements/constraints.txt, -c requirements/../../../packages/service-library/requirements/../../../requirements/constraints.txt, -c requirements/../../../requirements/constraints.txt, -r requirements/../../../packages/s3wrapper/requirements/_base.in, minio
48+
werkzeug==1.0.1 # via -r requirements/../../../packages/service-library/requirements/_base.in
49+
yarl==1.5.1 # via -r requirements/../../../packages/postgres-database/requirements/_base.in, aiohttp
50+
zipp==3.4.0 # via importlib-metadata
51+
52+
# The following packages are considered to be unsafe in a requirements file:
53+
# setuptools

packages/simcore-sdk/requirements/_test.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ apipkg==1.5 # via execnet
1010
astroid==2.4.2 # via pylint
1111
async-timeout==3.0.1 # via -c requirements/_base.txt, aiohttp
1212
attrs==20.3.0 # via -c requirements/_base.txt, aiohttp, pytest
13-
certifi==2020.11.8 # via requests
13+
certifi==2020.11.8 # via -c requirements/_base.txt, requests
1414
chardet==3.0.4 # via -c requirements/_base.txt, aiohttp, requests
1515
coverage==5.3 # via -r requirements/_test.in, coveralls, pytest-cov
1616
coveralls==2.2.0 # via -r requirements/_test.in
@@ -23,7 +23,7 @@ idna==2.10 # via -c requirements/_base.txt, idna-ssl, requests, y
2323
importlib-metadata==3.0.0 # via pluggy, pytest
2424
iniconfig==1.1.1 # via pytest
2525
isort==5.6.4 # via pylint
26-
lazy-object-proxy==1.4.3 # via astroid
26+
lazy-object-proxy==1.4.3 # via -c requirements/_base.txt, astroid
2727
mccabe==0.6.1 # via pylint
2828
mock==4.0.2 # via -r requirements/_test.in
2929
multidict==4.7.6 # via -c requirements/_base.txt, aiohttp, yarl
@@ -50,7 +50,7 @@ termcolor==1.1.0 # via pytest-sugar
5050
toml==0.10.2 # via pylint, pytest
5151
typed-ast==1.4.1 # via astroid
5252
typing-extensions==3.7.4.3 # via -c requirements/_base.txt, aiohttp, yarl
53-
urllib3==1.26.2 # via requests
53+
urllib3==1.26.2 # via -c requirements/_base.txt, requests
5454
websocket-client==0.57.0 # via docker
5555
wrapt==1.12.1 # via astroid
5656
yarl==1.5.1 # via -c requirements/_base.txt, aiohttp

requirements/constraints.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,6 @@ urllib3>=1.25.8 # Vulnerability
1818
httpx<0.15.0
1919
# [https://github.com/encode/httpx/releases/tag/0.15.0] due to PR#1285 [https://github.com/encode/httpx/pull/1285]
2020
respx<0.13.0
21+
22+
# Breaking changes. TODO: review ASAP
23+
minio<7.0.0

tests/swarm-deploy/requirements/requirements.in

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
-c ../../../requirements/constraints.txt
22

3+
-r ../../../packages/s3wrapper/requirements/_base.txt
4+
-r ../../../packages/postgres-database/requirements/_migration.txt
5+
-r ../../../packages/simcore-sdk/requirements/_base.txt
6+
-r ../../../packages/service-library/requirements/_base.txt
7+
-r ../../../packages/models-library/requirements/_base.txt
8+
39
aio-pika
410
alembic
511
click

0 commit comments

Comments
 (0)