def eval(self, data): """Evaluate the script and return executable.""" try: inputs = data.input.copy() hydrate_input_references(inputs, data.process.input_schema) hydrate_input_uploads(inputs, data.process.input_schema) inputs["proc"] = {"data_id": data.id, "data_path": settings.FLOW_EXECUTOR["DATA_PATH"]} script_template = data.process.run.get("bash", "") script = render_template(script_template, template.Context(inputs)) except template.TemplateSyntaxError as ex: data.status = Data.STATUS_ERROR data.process_error.append("Error in process script: {}".format(ex)) data.save() return None return script
def eval(self, data): """Evaluate the script and return executable.""" try: inputs = data.input.copy() hydrate_input_references(inputs, data.process.input_schema) hydrate_input_uploads(inputs, data.process.input_schema) inputs['proc'] = { 'data_id': data.id, 'data_dir': settings.FLOW_EXECUTOR['DATA_DIR'], } script_template = data.process.run.get('bash', '') script = render_template(script_template, template.Context(inputs)) except template.TemplateSyntaxError as ex: data.status = Data.STATUS_ERROR data.process_error.append('Error in process script: {}'.format(ex)) data.save() return None return script
def test_render_template_error(self): process_mock = MagicMock(requirements={'expression-engine': 'jinja'}) with self.assertRaises(EvaluationError): render_template(process_mock, '{{ 1 | missing_increase }}', {})
def test_render_template(self): process_mock = MagicMock(requirements={'expression-engine': 'jinja'}) template = render_template(process_mock, '{{ 1 | increase }}', {}) self.assertEqual(template, '2')