Skip to content

Commit a92d190

Browse files
committed
added more tests
1 parent 25d9623 commit a92d190

2 files changed

Lines changed: 103 additions & 2 deletions

File tree

state-manager/app/models/db/graph_template_model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ def verify_input_dependencies(self) -> Self:
242242
errors.append(f"Input {input_value} depends on {identifier} but {identifier} is not a parent of {node.identifier}")
243243

244244
except Exception as e:
245-
errors.append(f"Error creating dependent string for input {input_value}: {e}")
245+
errors.append(f"Error creating dependent string for input {input_value} check syntax string: {str(e)}")
246246
if errors:
247247
raise ValueError("\n".join(errors))
248248

state-manager/tests/unit/with_database/test_graph_template.py

Lines changed: 102 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,19 @@ async def test_basic_invalid_graphs(app_started):
395395
)
396396
assert "Secrets cannot be empty" in str(exc_info.value)
397397

398+
# test invalid graph with non-urlsafe base64 encoded secret
399+
with pytest.raises(ValueError) as exc_info:
400+
GraphTemplate(
401+
name="test_name",
402+
namespace="test_namespace",
403+
nodes=[],
404+
validation_status=GraphTemplateValidationStatus.PENDING,
405+
secrets={
406+
"secret1": "invalid_base64_string_that_is_long_enough_to_pass_length_check_but_not_valid_base64_encoding_123456789",
407+
}
408+
)
409+
assert "Value is not valid URL-safe base64 encoded" in str(exc_info.value)
410+
398411
@pytest.mark.asyncio
399412
async def test_valid_graphs_with_unites(app_started):
400413
"""Test valid graphs with unites"""
@@ -539,6 +552,34 @@ async def test_invalid_graphs_with_disconnected_nodes(app_started):
539552
validation_status=GraphTemplateValidationStatus.PENDING
540553
)
541554

555+
with pytest.raises(ValueError) as exc_info:
556+
GraphTemplate(
557+
name="test_liner_graph_template_1",
558+
namespace="test_namespace",
559+
nodes=[
560+
NodeTemplate(
561+
node_name="node1",
562+
namespace="test_namespace",
563+
identifier="node1",
564+
inputs={},
565+
next_nodes=None,
566+
unites=None
567+
),
568+
NodeTemplate(
569+
node_name="node2",
570+
namespace="test_namespace",
571+
identifier="node2",
572+
inputs={},
573+
next_nodes=None,
574+
unites=Unites(
575+
identifier="node1"
576+
)
577+
)
578+
],
579+
validation_status=GraphTemplateValidationStatus.PENDING
580+
)
581+
assert "is not connected to the root node" in str(exc_info.value)
582+
542583
@pytest.mark.asyncio
543584
async def test_valid_graph_inputs(app_started):
544585
"""Test valid graph inputs"""
@@ -698,4 +739,64 @@ async def test_invalid_graph_inputs(app_started):
698739
],
699740
validation_status=GraphTemplateValidationStatus.PENDING
700741
)
701-
assert "Input ${{node2.outputs.output1}} depends on node2 but node2 is not a parent of node3" in str(exc_info.value)
742+
assert "Input ${{node2.outputs.output1}} depends on node2 but node2 is not a parent of node3" in str(exc_info.value)
743+
744+
with pytest.raises(ValueError) as exc_info:
745+
GraphTemplate(
746+
name="test_graph",
747+
namespace="test_namespace",
748+
nodes=[
749+
NodeTemplate(
750+
node_name="node1",
751+
namespace="test_namespace",
752+
identifier="node1",
753+
inputs={},
754+
next_nodes=[
755+
"node2"
756+
],
757+
unites=None
758+
),
759+
NodeTemplate(
760+
node_name="node2",
761+
namespace="test_namespace",
762+
identifier="node2",
763+
inputs={
764+
"input1": 123
765+
},
766+
next_nodes=None,
767+
unites=None
768+
)
769+
],
770+
validation_status=GraphTemplateValidationStatus.PENDING
771+
)
772+
assert "is not a string" in str(exc_info.value)
773+
774+
with pytest.raises(ValueError) as exc_info:
775+
GraphTemplate(
776+
name="test_graph",
777+
namespace="test_namespace",
778+
nodes=[
779+
NodeTemplate(
780+
node_name="node1",
781+
namespace="test_namespace",
782+
identifier="node1",
783+
inputs={},
784+
next_nodes=[
785+
"node2"
786+
],
787+
unites=None
788+
),
789+
NodeTemplate(
790+
node_name="node2",
791+
namespace="test_namespace",
792+
identifier="node2",
793+
inputs={
794+
"input1": "${{node1.outputs.output1"
795+
},
796+
next_nodes=None,
797+
unites=None
798+
)
799+
],
800+
validation_status=GraphTemplateValidationStatus.PENDING
801+
)
802+
assert "Error creating dependent string for input ${{node1.outputs.output1" in str(exc_info.value)

0 commit comments

Comments
 (0)