Ejemplo n.º 1
0
def prokka_request(request):
    form = ProkkaForm()
    if request.method == 'POST':
        form = ProkkaForm(request.POST, request.FILES)
        if form.is_valid():
            seqids, name, other_files = form.cleaned_data
            prokka_request_object = ProkkaRequest.objects.create(
                user=request.user, seqids=seqids, status='Processing')
            if name is None:
                prokka_request_object.name = prokka_request.pk
            else:
                prokka_request_object.name = name
            prokka_request_object.save()
            container_name = 'prokka-{}'.format(prokka_request_object.pk)
            blob_client = BlockBlobService(
                account_name=settings.AZURE_ACCOUNT_NAME,
                account_key=settings.AZURE_ACCOUNT_KEY)
            blob_client.create_container(container_name)
            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.create_blob_from_bytes(
                    container_name=container_name,
                    blob_name=other_file.name,
                    blob=other_file.read())
            prokka_request_object.other_input_files = file_names
            prokka_request_object.save()
            run_prokka.apply_async(queue='cowbat',
                                   args=(prokka_request_object.pk, ),
                                   countdown=10)
            return redirect('geneseekr:prokka_result',
                            prokka_request_pk=prokka_request_object.pk)
    return render(request, 'geneseekr/prokka_request.html', {'form': form})
Ejemplo n.º 2
0
def prokka_rename(request, prokka_request_pk):
    prokka_request_object = get_object_or_404(ProkkaRequest,
                                              pk=prokka_request_pk)
    name = {'name': prokka_request_object.name}
    form = ProkkaForm(initial=name)
    if request.method == "POST":
        prokka_request_object.name = request.POST["name"]
        prokka_request_object.save()
        return redirect('geneseekr:prokka_home')

    return render(request, 'rename.html', {
        'prokka_request': prokka_request_object,
        'form': form
    })
Ejemplo n.º 3
0
 def test_invalid_form_wrong_seqid_does_not_exist(self):
     form = ProkkaForm({
         'seqids': '2222-SEQ-0711 2015-SEQ-0712'
     }, QueryDict())
     self.assertFalse(form.is_valid())
Ejemplo n.º 4
0
 def test_invalid_form_blank(self):
     form = ProkkaForm({
         'seqids': ''
     }, QueryDict())
     self.assertFalse(form.is_valid())
Ejemplo n.º 5
0
 def test_valid_form(self):
     form = ProkkaForm(QueryDict('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'])