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])
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]])
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])
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')
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]])
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')