@@ -35,12 +35,58 @@ def test_json_generation():
3535
3636def test_copy_workflow ():
3737 workflow = Workflow (Environment .create_workbench ("refael" ), WorkflowDefaults (run_as = 'workbench' ), skip_initial_authentication = True )
38- workflow .add (aapi .JobCommand ('MyFirstJob ' , command = 'ls -lt' , run_as = 'workbench' ), inpath = 'MyFirstFolder ' )
38+ workflow .add (aapi .JobCommand ('TestJob ' , command = 'ls -lt' , run_as = 'workbench' ), inpath = 'TestFolder ' )
3939
4040 newworkflow = BaseWorkflow ()
4141 newworkflow .copy_from (workflow = workflow )
4242
43- assert newworkflow .get ("MyFirstFolder " ).dumps_aapi (indent = 2 ) == workflow .get ("MyFirstFolder " ).dumps_aapi (indent = 2 )
43+ assert newworkflow .get ("TestFolder " ).dumps_aapi (indent = 2 ) == workflow .get ("TestFolder " ).dumps_aapi (indent = 2 )
4444
45- o = json .loads ('{\n "Type": "Folder",\n "MyFirstJob": {\n "Type": "Job:Command",\n "RunAs": "workbench",\n "Command": "ls -lt"\n },\n "RunAs": "workbench"\n }' )
46- assert newworkflow .get ("MyFirstFolder" ).as_aapi_dict () == o
45+ o = json .loads ('{\n "Type": "Folder",\n "TestJob": {\n "Type": "Job:Command",\n "RunAs": "workbench",\n "Command": "ls -lt"\n },\n "RunAs": "workbench"\n }' )
46+ assert newworkflow .get ("TestFolder" ).as_aapi_dict () == o
47+
48+ def test_connecting_jobs ():
49+ workflow = Workflow (Environment .create_workbench ("refael" ), WorkflowDefaults (run_as = 'workbench' ), skip_initial_authentication = True )
50+ firstjob = workflow .add (
51+ aapi .JobCommand ('JobToConnect1' , command = "first" ),
52+ inpath = 'TestFolder'
53+ )
54+
55+ secondjob = workflow .add (
56+ aapi .JobCommand ('JobToConnect2' , command = "second" ),
57+ inpath = 'TestFolder'
58+ )
59+ workflow .connect (firstjob , secondjob )
60+
61+ def test_chaining_jobs ():
62+ workflow = Workflow (Environment .create_workbench ("refael" ), WorkflowDefaults (run_as = 'workbench' ), skip_initial_authentication = True )
63+ workflow .chain (
64+ [
65+ aapi .JobCommand ('FirstTestJob' , "First" ),
66+ aapi .JobCommand ('SecondTestJob' , "Second" ),
67+ aapi .JobCommand ('ThirdTestJob' , "Third" , run_as_dummy = True ),
68+ ],
69+ inpath = 'ChainedJobs'
70+ )
71+
72+ def test_events ():
73+ job = aapi .JobCommand ('Job1' , command = 'echo Hello' )
74+
75+ waitForEventList = aapi .WaitForEvents ([aapi .Event (event = "wait1" ), aapi .Event (event = "wait2" , date = aapi .Event .Date .AnyDate )])
76+ job .event_list .append (waitForEventList )
77+
78+ deleteEventListObject = aapi .DeleteEvents ([aapi .EventOutDelete (event = "delete" )])
79+ job .event_list .append (deleteEventListObject )
80+
81+ addEventListObject1 = aapi .AddEvents ([aapi .EventOutAdd (event = "add1" )])
82+ job .event_list .append (addEventListObject1 )
83+
84+ addEventListObject2 = aapi .AddEvents ([aapi .EventOutAdd (event = "add2" ,date = aapi .Event .Date .NoDate )])
85+ job .add_events_list .append (addEventListObject2 )
86+
87+ assert any (isinstance (obj , aapi .WaitForEvents ) and any (event .event == 'wait2' for event in obj .events ) for obj in job .event_list )
88+ assert any (isinstance (obj , aapi .DeleteEvents ) and any (event .event == 'delete' for event in obj .events ) for obj in job .event_list )
89+ assert any (isinstance (obj , aapi .AddEvents ) and any (event .event == 'add1' for event in obj .events ) for obj in job .event_list )
90+ assert any (isinstance (obj , aapi .AddEvents ) and any (event .event == 'add2' for event in obj .events ) for obj in job .add_events_list )
91+
92+ assert json .loads (job .dumps_aapi ())
0 commit comments