def testRunWorkflow(self): wf = self.reader.parse_file(os.path.join(os.path.dirname(__file__), 'xml/openwfe/workflow1.xml')) for name in wf[0].tasks: wf[0].tasks[name].signal_connect('reached', self.on_reached_cb) wf[0].tasks[name].signal_connect('completed', on_complete_cb, self.taken_path) job = Job(wf[0]) try: job.complete_all() except: job.dump() raise path = [( 1, 'Start'), ( 2, 'concurrence_1'), ( 3, 'task_a1'), ( 4, 'task_a2'), ( 5, 'if_condition_1'), ( 6, 'task_a3'), ( 7, 'if_condition_1_end'), ( 8, 'if_condition_2'), ( 9, 'task_a5'), (10, 'if_condition_2_end'), ( 3, 'task_b1'), ( 4, 'task_b2'), ( 5, 'concurrence_1_end'), ( 6, 'task_c1'), ( 7, 'task_c2'), ( 8, 'End')] assert_same_path(self, path, self.taken_path)
def runWorkflow(self, wf, xml_filename): taken_path = [] for name in wf.tasks: wf.tasks[name].signal_connect('reached', on_reached_cb, taken_path) wf.tasks[name].signal_connect('completed', on_complete_cb, taken_path) # Execute all tasks within the Job. job = Job(wf) self.assert_(not job.is_completed(), 'Job is complete before start') try: job.complete_all(False) except: job.task_tree.dump() raise #job.task_tree.dump() self.assert_(job.is_completed(), 'complete_all() returned, but job is not complete\n' + job.task_tree.get_dump()) # Make sure that there are no waiting tasks left in the tree. for node in Task.Iterator(job.task_tree, Task.READY): job.task_tree.dump() raise Exception('Node with state READY: %s' % node.name) # Check whether the correct route was taken. filename = xml_filename + '.path' if os.path.exists(filename): file = open(filename, 'r') expected = file.read() file.close() taken_path = '\n'.join(taken_path) + '\n' error = '%s:\n' % name error += 'Expected:\n' error += '%s\n' % expected error += 'but got:\n' error += '%s\n' % taken_path self.assert_(taken_path == expected, error) # Check attribute availibility. filename = xml_filename + '.data' if os.path.exists(filename): file = open(filename, 'r') expected = file.read() file.close() result = job.get_attribute('data', '') error = '%s:\n' % name error += 'Expected:\n' error += '%s\n' % expected error += 'but got:\n' error += '%s\n' % result self.assert_(result == expected, error)
def runWorkflow(self, wf): taken_path = {'reached': [], 'completed': []} for name, task in wf.tasks.iteritems(): task.signal_connect('reached', on_reached_cb, taken_path['reached']) task.signal_connect('completed', on_complete_cb, taken_path['completed']) # Execute all tasks within the Job. job = Job(wf) self.assert_(not job.is_completed(), 'Job is complete before start') try: job.complete_all() except: job.dump() raise self.assert_(job.is_completed(), 'complete_all() returned, but job is not complete\n' + job.task_tree.get_dump()) #job.task_tree.dump() assert_same_path(self, self.expected_path, taken_path['completed'])