1+ import json
12import os
23import unittest
4+ from os import listdir
35
46from serverlessworkflow .sdk .action import Action
57from serverlessworkflow .sdk .function import Function
810
911
1012class TestWorkflow (unittest .TestCase ):
11-
1213 workflow = Workflow (id_ = "greeting" ,
1314 name = "Greeting Workflow" ,
1415 description = "Greet Someone" ,
@@ -106,8 +107,26 @@ def test_workflow_to_yaml(self):
106107 self .assertEqual (expected , self .workflow .to_yaml ())
107108
108109 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 ))
111130
112131 def test_workflow_from_source_yaml (self ):
113132 wf_file = os .path .join (os .path .dirname (__file__ ), 'test_workflow.yaml' )
@@ -125,4 +144,3 @@ def assert_test_workflow_file(self, wf_file):
125144 self .assertTrue (isinstance (workflow .states [0 ].actions [0 ], Action ))
126145 self .assertTrue (isinstance (workflow .states [0 ].actions [0 ].functionRef , FunctionRef ))
127146 self .assertTrue (isinstance (workflow .functions [0 ], Function ))
128-
0 commit comments