def get_results(self, request, string, mol_form): job_settings = dict(self.cleaned_data) mol_settings = dict(mol_form.cleaned_data) if request.method == "GET": if request.REQUEST.get('molname'): job_settings['name'] = request.REQUEST.get('molname') job_string = JobTemplate.render(**job_settings) response = HttpResponse(job_string, content_type="text/plain") filename = '%s.job' % job_settings['name'] add = "" if request.REQUEST.get("view") else "attachment; " response['Content-Disposition'] = add + 'filename=' + filename return response elif request.method == "POST": cred = job_settings.pop("credential") do_html = request.REQUEST.get("html", False) results = run_standard_jobs( cred, string, mol_settings, job_settings) if results["failed"]: failed_names = zip(*results['failed'])[0] results["failed_mols"] = ','.join(failed_names) if do_html: html = render_to_string("chem/multi_submit.html", results) temp = {"success": True, "html": html} return HttpResponse(json.dumps(temp), content_type="application/json") else: return HttpResponse(json.dumps(results), content_type="application/json")
def test_run_standard_jobs_name_error(self): job = 'sleep 10' names = "E-N,C-N" results = utils.run_standard_jobs( self.credential2, names, {}, {'jobstring': job}) for name, error in results['failed']: self.assertEqual(error, "Bad Substituent Name(s): ['N']")
def test_run_standard_jobs(self): job = 'sleep 10' names = "TON,CON" results = utils.run_standard_jobs( self.credential2, names, {}, {'jobstring': job}) self.assertEqual(results["error"], None) self.assertEqual(results["failed"], [])
def get_results(self, request, string, mol_form): job_settings = dict(self.cleaned_data) mol_settings = dict(mol_form.cleaned_data) if request.method == "GET": if request.REQUEST.get('molname'): job_settings['name'] = request.REQUEST.get('molname') job_string = JobTemplate.render(**job_settings) response = HttpResponse(job_string, content_type="text/plain") filename = '%s.job' % job_settings['name'] add = "" if request.REQUEST.get("view") else "attachment; " response['Content-Disposition'] = add + 'filename=' + filename return response elif request.method == "POST": cred = job_settings.pop("credential") do_html = request.REQUEST.get("html", False) results = run_standard_jobs(cred, string, mol_settings, job_settings) if results["failed"]: failed_names = zip(*results['failed'])[0] results["failed_mols"] = ','.join(failed_names) if do_html: html = render_to_string("chem/multi_submit.html", results) temp = {"success": True, "html": html} return HttpResponse(json.dumps(temp), content_type="application/json") else: return HttpResponse(json.dumps(results), content_type="application/json")
def test_run_standard_jobs_invalid_credential(self): results = utils.run_standard_jobs(None, [''], {}, {}) self.assertEqual(results["error"], CRED_ERROR)
def test_run_standard_jobs_staff_error(self): results = utils.run_standard_jobs(self.credential, [''], {}, {}) self.assertEqual(results["error"], SUBMIT_ERROR)