Skip to content

Commit

Permalink
Merge branch 'windowed-placeholder-query' of https://github.com/Safe-…
Browse files Browse the repository at this point in the history
…DS/Runner into windowed-placeholder-query

# Conflicts:
#	src/safeds_runner/server/messages.py
  • Loading branch information
WinPlay02 committed Jan 23, 2024
2 parents 0f9eda8 + 6f9412a commit a52345d
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 12 deletions.
15 changes: 11 additions & 4 deletions src/safeds_runner/server/messages.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@ class QueryWindow:
size : int | None
Max. amount of entries that should be sent. May be present if a windowed query is required.
"""

begin: int | None = None
size: int | None = None

Expand Down Expand Up @@ -446,11 +447,17 @@ def validate_placeholder_query_message_data(
return None, "Message data is not a JSON object"
elif "name" not in message_data:
return None, "No 'name' parameter given"
elif "window" in message_data and "begin" in message_data["window"] and not isinstance(
message_data["window"]["begin"], int):
elif (
"window" in message_data
and "begin" in message_data["window"]
and not isinstance(message_data["window"]["begin"], int)
):
return None, "Invalid 'window'.'begin' parameter given"
elif "window" in message_data and "size" in message_data["window"] and not isinstance(message_data["window"]["size"],
int):
elif (
"window" in message_data
and "size" in message_data["window"]
and not isinstance(message_data["window"]["size"], int)
):
return None, "Invalid 'window'.'size' parameter given"
else:
return MessageQueryInformation.from_dict(message_data), None
24 changes: 16 additions & 8 deletions tests/safeds_runner/server/test_websocket_mock.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,14 @@
from safeds_runner.server.messages import (
Message,
MessageQueryInformation,
QueryWindow,
create_placeholder_description,
create_placeholder_value,
create_runtime_progress_done,
message_type_placeholder_type,
message_type_placeholder_value,
message_type_runtime_error,
message_type_runtime_progress, QueryWindow,
message_type_runtime_progress,
)
from safeds_runner.server.pipeline_manager import PipelineManager
from safeds_runner.server.server import SafeDsServer
Expand Down Expand Up @@ -507,55 +508,62 @@ def helper_should_accept_at_least_2_parallel_connections_in_subprocess_server(
"Table",
Table.from_dict({"a": [1, 2, 1, 2, 3, 2, 1], "b": [3, 4, 6, 2, 1, 2, 3]}),
(
'{"name": "name", "type": "Table", "window": {"begin": 0, "size": 1, "max": 7}, "value": {"a": [1], "b": [3]}}'
'{"name": "name", "type": "Table", "window": {"begin": 0, "size": 1, "max": 7}, "value": {"a": [1],'
' "b": [3]}}'
),
),
(
MessageQueryInformation("name", QueryWindow(4, 3)),
"Table",
Table.from_dict({"a": [1, 2, 1, 2, 3, 2, 1], "b": [3, 4, 6, 2, 1, 2, 3]}),
(
'{"name": "name", "type": "Table", "window": {"begin": 4, "size": 3, "max": 7}, "value": {"a": [3, 2, 1], "b": [1, 2, 3]}}'
'{"name": "name", "type": "Table", "window": {"begin": 4, "size": 3, "max": 7}, "value": {"a": [3, 2,'
' 1], "b": [1, 2, 3]}}'
),
),
(
MessageQueryInformation("name", QueryWindow(0, 0)),
"Table",
Table.from_dict({"a": [1, 2, 1, 2, 3, 2, 1], "b": [3, 4, 6, 2, 1, 2, 3]}),
(
'{"name": "name", "type": "Table", "window": {"begin": 0, "size": 0, "max": 7}, "value": {"a": [], "b": []}}'
'{"name": "name", "type": "Table", "window": {"begin": 0, "size": 0, "max": 7}, "value": {"a": [], "b":'
" []}}"
),
),
(
MessageQueryInformation("name", QueryWindow(4, 30)),
"Table",
Table.from_dict({"a": [1, 2, 1, 2, 3, 2, 1], "b": [3, 4, 6, 2, 1, 2, 3]}),
(
'{"name": "name", "type": "Table", "window": {"begin": 4, "size": 3, "max": 7}, "value": {"a": [3, 2, 1], "b": [1, 2, 3]}}'
'{"name": "name", "type": "Table", "window": {"begin": 4, "size": 3, "max": 7}, "value": {"a": [3, 2,'
' 1], "b": [1, 2, 3]}}'
),
),
(
MessageQueryInformation("name", QueryWindow(4, None)),
"Table",
Table.from_dict({"a": [1, 2, 1, 2, 3, 2, 1], "b": [3, 4, 6, 2, 1, 2, 3]}),
(
'{"name": "name", "type": "Table", "window": {"begin": 4, "size": 3, "max": 7}, "value": {"a": [3, 2, 1], "b": [1, 2, 3]}}'
'{"name": "name", "type": "Table", "window": {"begin": 4, "size": 3, "max": 7}, "value": {"a": [3, 2,'
' 1], "b": [1, 2, 3]}}'
),
),
(
MessageQueryInformation("name", QueryWindow(0, -5)),
"Table",
Table.from_dict({"a": [1, 2, 1, 2, 3, 2, 1], "b": [3, 4, 6, 2, 1, 2, 3]}),
(
'{"name": "name", "type": "Table", "window": {"begin": 0, "size": 0, "max": 7}, "value": {"a": [], "b": []}}'
'{"name": "name", "type": "Table", "window": {"begin": 0, "size": 0, "max": 7}, "value": {"a": [], "b":'
" []}}"
),
),
(
MessageQueryInformation("name", QueryWindow(-5, None)),
"Table",
Table.from_dict({"a": [1, 2, 1, 2, 3, 2, 1], "b": [3, 4, 6, 2, 1, 2, 3]}),
(
'{"name": "name", "type": "Table", "window": {"begin": 0, "size": 7, "max": 7}, "value": {"a": [1, 2, 1, 2, 3, 2, 1], "b": [3, 4, 6, 2, 1, 2, 3]}}'
'{"name": "name", "type": "Table", "window": {"begin": 0, "size": 7, "max": 7}, "value": {"a": [1, 2,'
' 1, 2, 3, 2, 1], "b": [3, 4, 6, 2, 1, 2, 3]}}'
),
),
],
Expand Down

0 comments on commit a52345d

Please sign in to comment.