コード例 #1
0
ファイル: tests.py プロジェクト: anzev/clowdflows
 def test_fast_widget_runner(self):
     w = Widget.objects.get(id=6)
     wr = WidgetRunner(w,workflow_runner=WorkflowRunner(w.workflow,clean=False))
     wr.run()
     wid = Widget.objects.get(id=6)
     o = wid.outputs.all()[0].value
     self.assertEqual(o,[20,40,60,80])
コード例 #2
0
ファイル: tests.py プロジェクト: anzev/clowdflows
 def test_fast_widget_runner_cv(self):
     w = Widget.objects.get(id=16)
     wr = WidgetRunner(w,workflow_runner=WorkflowRunner(w.workflow,clean=False))
     wr.run()
     wid = Widget.objects.get(id=16)
     o = wid.outputs.all()[0].value
     self.assertEqual(o,[[[[u'2'], [u'1']], [u'3'], 1],
                         [[[u'3'], [u'1']], [u'2'], 1],
                         [[[u'3'], [u'2']], [u'1'], 1]])
コード例 #3
0
 def test_fast_widget_runner(self):
     w = Widget.objects.get(id=6)
     wr = WidgetRunner(w,
                       workflow_runner=WorkflowRunner(w.workflow,
                                                      clean=False),
                       standalone=True)
     wr.run()
     wid = Widget.objects.get(id=6)
     o = wid.outputs.all()[0].value
     self.assertEqual(o, [20, 40, 60, 80])
コード例 #4
0
ファイル: widget_viewset.py プロジェクト: anzev/clowdflows
 def interact(self, request, pk=None):
     '''Used for interactive widgets.'''
     w = self.get_object()
     if request.method == 'GET':
         input_dict = {}
         output_dict = {}
         for i in w.inputs.all():
             if not i.parameter:
                 if i.connections.count() > 0:
                     i.value = i.connections.all()[0].output.value
                     i.save()
                 else:
                     i.value = None
                     i.save()
             if i.multi_id == 0:
                 input_dict[i.variable] = i.value
             else:
                 if not i.variable in input_dict:
                     input_dict[i.variable] = []
                 if not i.value == None:
                     input_dict[i.variable].append(i.value)
         for o in w.outputs.all():
             output_dict[o.variable] = o.value
         view_to_call = getattr(workflows_app.interaction_views, w.abstract_widget.interaction_view)
         return view_to_call(request, input_dict, output_dict, w)
     else:  # POST
         try:
             data = dict(request.POST) if request.POST else request.data
             WidgetRunner.run_post(w, data)
             # w.interaction_waiting = False
             # w.save()
             if w.abstract_widget.visualization_view != '':
                 data = json.dumps(
                     {'status': 'visualize', 'message': 'Visualizing widget {}.'.format(w.name), 'widget_id': w.id})
             else:
                 data = json.dumps(
                     {'status': 'ok', 'message': 'Widget {} executed successfully.'.format(w.name),
                      'widget_id': w.id})
         except Exception, e:
             w.error = True
             w.running = False
             w.finished = False
             w.interaction_waiting = False
             w.interaction_finished = False
             w.save()
             print traceback.format_exc(e)
             # raise
             for o in w.outputs.all():
                 o.value = None
                 o.save()
             data = json.dumps({'status': 'error',
                                'message': 'Error occurred when trying to execute widget \'{}\': {}'.format(w.name,
                                                                                                            str(e))})
         return HttpResponse(data, 'application/javascript')
コード例 #5
0
 def test_fast_widget_runner_cv(self):
     w = Widget.objects.get(id=16)
     wr = WidgetRunner(w,
                       workflow_runner=WorkflowRunner(w.workflow,
                                                      clean=False),
                       standalone=True)
     wr.run()
     wid = Widget.objects.get(id=16)
     o = wid.outputs.all()[0].value
     self.assertEqual(
         o, [[[[u'2'], [u'1']], [u'3'], 1], [[[u'3'], [u'1']], [u'2'], 1],
             [[[u'3'], [u'2']], [u'1'], 1]])
コード例 #6
0
 def interact(self, request, pk=None):
     '''Used for interactive widgets.'''
     w = self.get_object()
     if request.method == 'GET':
         input_dict = {}
         output_dict = {}
         for i in w.inputs.all():  #.defer('value'):
             if i.multi_id == 0:
                 input_dict[i.variable] = i.value
             else:
                 if not i.variable in input_dict:
                     input_dict[i.variable] = []
                 if i.value is not ValueNotSet:
                     input_dict[i.variable].append(i.value)
         for o in w.outputs.all():
             output_dict[o.variable] = o.value
         view_to_call = getattr(workflows_app.interaction_views,
                                w.abstract_widget.interaction_view)
         return view_to_call(request, input_dict, output_dict, w)
     else:  # POST
         try:
             data = dict(request.POST) if request.POST else request.data
             WidgetRunner.run_post(w, data)
             # w.interaction_waiting = False
             # w.save()
             if w.abstract_widget.visualization_view != '':
                 data = json.dumps({
                     'status':
                     'visualize',
                     'message':
                     'Visualizing widget {}.'.format(w.name),
                     'widget_id':
                     w.id
                 })
             else:
                 data = json.dumps({
                     'status':
                     'ok',
                     'message':
                     'Widget {} executed successfully.'.format(w.name),
                     'widget_id':
                     w.id
                 })
         except Exception as e:
             w.error = True
             w.running = False
             w.finished = False
             w.interaction_waiting = False
             w.interaction_finished = False
             w.save()
             print(traceback.format_exc(e))
             # raise
             for o in w.outputs.all():
                 o.value = None
                 o.save()
             data = json.dumps({
                 'status':
                 'error',
                 'message':
                 'Error occurred when trying to execute widget \'{}\': {}'.
                 format(w.name, str(e))
             })
         return HttpResponse(data, 'application/javascript')