1+ import pytest
2+ from app .models .node_template_model import NodeTemplate , Unites
3+
4+ def test_invalid_node_template (app_started ):
5+ """Test invalid node template"""
6+ with pytest .raises (ValueError ) as exc_info :
7+ NodeTemplate (
8+ node_name = "" ,
9+ namespace = "test_namespace" ,
10+ identifier = "node1" ,
11+ inputs = {},
12+ next_nodes = None ,
13+ unites = None
14+ )
15+ assert "Node name cannot be empty" in str (exc_info .value )
16+
17+ with pytest .raises (ValueError ) as exc_info :
18+ NodeTemplate (
19+ node_name = "test_node" ,
20+ namespace = "test_namespace" ,
21+ identifier = "" ,
22+ inputs = {},
23+ next_nodes = None ,
24+ unites = None
25+ )
26+ assert "Node identifier cannot be empty" in str (exc_info .value )
27+
28+ with pytest .raises (ValueError ) as exc_info :
29+ NodeTemplate (
30+ node_name = "test_node" ,
31+ namespace = "test_namespace" ,
32+ identifier = "node1" ,
33+ inputs = {},
34+ next_nodes = ["" , "node2" ],
35+ unites = None
36+ )
37+ assert "Next node identifier cannot be empty" in str (exc_info .value )
38+
39+ with pytest .raises (ValueError ) as exc_info :
40+ NodeTemplate (
41+ node_name = "test_node" ,
42+ namespace = "test_namespace" ,
43+ identifier = "node1" ,
44+ inputs = {},
45+ next_nodes = ["node1" , "node1" ],
46+ unites = None
47+ )
48+ assert "Next node identifier node1 is not unique" in str (exc_info .value )
49+
50+ with pytest .raises (ValueError ) as exc_info :
51+ NodeTemplate (
52+ node_name = "test_node" ,
53+ namespace = "test_namespace" ,
54+ identifier = "node1" ,
55+ inputs = {},
56+ next_nodes = ["node2" ],
57+ unites = Unites (identifier = "" )
58+ )
59+ assert "Unites identifier cannot be empty" in str (exc_info .value )
60+
61+ def test_get_dependent_strings (app_started ):
62+ """Test get dependent strings"""
63+ node_template = NodeTemplate (
64+ node_name = "test_node" ,
65+ namespace = "test_namespace" ,
66+ identifier = "node1" ,
67+ inputs = {"input1" : "${{node2.outputs.output1}}" },
68+ next_nodes = None ,
69+ unites = None
70+ )
71+ dependent_strings = node_template .get_dependent_strings ()
72+ assert len (dependent_strings ) == 1
73+ assert dependent_strings [0 ].get_identifier_field () == [("node2" , "output1" )]
74+
75+ node_template = NodeTemplate (
76+ node_name = "test_node" ,
77+ namespace = "test_namespace" ,
78+ identifier = "node1" ,
79+ inputs = {"input1" : "${{node2.outputs.output1}}" , "input2" : "${{node3.outputs.output2}}" },
80+ next_nodes = None ,
81+ unites = None
82+ )
83+ dependent_strings = node_template .get_dependent_strings ()
84+ assert len (dependent_strings ) == 2
85+ assert ("node2" , "output1" ) in dependent_strings [0 ].get_identifier_field ()
86+ assert ("node3" , "output2" ) in dependent_strings [1 ].get_identifier_field ()
87+
88+ with pytest .raises (ValueError ) as exc_info :
89+ node_template = NodeTemplate (
90+ node_name = "test_node" ,
91+ namespace = "test_namespace" ,
92+ identifier = "node1" ,
93+ inputs = {"input1" : 1 },
94+ next_nodes = None ,
95+ unites = None
96+ )
97+ dependent_strings = node_template .get_dependent_strings ()
98+ assert "Input 1 is not a string" in str (exc_info .value )
0 commit comments