1
+ import json
1
2
import os
2
3
import unittest
4
+ from os import listdir
3
5
4
6
from serverlessworkflow .sdk .action import Action
5
7
from serverlessworkflow .sdk .function import Function
8
10
9
11
10
12
class TestWorkflow (unittest .TestCase ):
11
-
12
13
workflow = Workflow (id_ = "greeting" ,
13
14
name = "Greeting Workflow" ,
14
15
description = "Greet Someone" ,
@@ -106,8 +107,26 @@ def test_workflow_to_yaml(self):
106
107
self .assertEqual (expected , self .workflow .to_yaml ())
107
108
108
109
def test_workflow_from_source_json (self ):
109
- wf_file = os .path .join (os .path .dirname (__file__ ), 'test_workflow.json' )
110
- self .assert_test_workflow_file (wf_file )
110
+ examples_dir = os .path .join (os .path .dirname (__file__ ), '../../examples' )
111
+ examples = listdir (examples_dir )
112
+ self .assertEqual (len (examples ), 10 )
113
+
114
+ for example in examples :
115
+ with self .subTest (f"test_{ example } " ):
116
+ with open (examples_dir + "/" + example , "r" ) as swf_file :
117
+ workflow = Workflow .from_source (swf_file )
118
+ self .assertTrue (isinstance (workflow , Workflow ))
119
+
120
+ def test_instance_workflow_class (self ):
121
+ examples_dir = os .path .join (os .path .dirname (__file__ ), '../../examples' )
122
+ examples = listdir (examples_dir )
123
+ self .assertEqual (len (examples ), 10 )
124
+
125
+ for example in examples :
126
+ with self .subTest (f"test_{ example } " ):
127
+ with open (examples_dir + "/" + example , "r" ) as swf_file :
128
+ workflow = Workflow (** json .load (swf_file ))
129
+ self .assertTrue (isinstance (workflow , Workflow ))
111
130
112
131
def test_workflow_from_source_yaml (self ):
113
132
wf_file = os .path .join (os .path .dirname (__file__ ), 'test_workflow.yaml' )
@@ -125,4 +144,3 @@ def assert_test_workflow_file(self, wf_file):
125
144
self .assertTrue (isinstance (workflow .states [0 ].actions [0 ], Action ))
126
145
self .assertTrue (isinstance (workflow .states [0 ].actions [0 ].functionRef , FunctionRef ))
127
146
self .assertTrue (isinstance (workflow .functions [0 ], Function ))
128
-
0 commit comments