def amr_request(request): form = AMRForm() if request.method == 'POST': form = AMRForm(request.POST, request.FILES) if form.is_valid(): seqids, name, other_files = form.cleaned_data amr_request_object = AMRSummary.objects.create(user=request.user, seqids=seqids) amr_request_object.status = 'Processing' if name is None: amr_request.name = amr_request.pk else: amr_request.name = name container_name = 'mash-{}'.format(amr_request.pk) file_names = list() for other_file in request.FILES.getlist('other_files'): file_name = os.path.join(container_name, other_file.name) file_names.append(file_name) blob_client = BlockBlobService( account_name=settings.AZURE_ACCOUNT_NAME, account_key=settings.AZURE_ACCOUNT_KEY) blob_client.create_container(container_name) blob_client.create_blob_from_bytes( container_name=container_name, blob_name=other_file.name, blob=other_file.read()) amr_request_object.other_input_files = file_names amr_request_object.save() run_amr_summary.apply_async(queue='cowbat', args=(amr_request_object.pk, ), countdown=10) return redirect('geneseekr:amr_result', amr_request_pk=amr_request_object.pk) return render(request, 'geneseekr/amr_request.html', {'form': form})
def test_valid_form(self): form = AMRForm({ 'seqids': '2015-SEQ-0711 2015-SEQ-0712' }, QueryDict()) self.assertTrue(form.is_valid()) seqids, name, other_files = form.cleaned_data self.assertEqual(seqids, ['2015-SEQ-0711', '2015-SEQ-0712'])
def test_invalid_form_blank(self): form = AMRForm({ 'seqids': '' }, QueryDict()) self.assertFalse(form.is_valid())
def test_invalid_form_wrong_seqid_does_not_exist(self): form = AMRForm({ 'seqids': '2222-SEQ-0711 2015-SEQ-0712' }, QueryDict()) self.assertFalse(form.is_valid())