Example #1
0
def import_product_migrations(request):
    context = {}
    if request.method == "POST":
        form = ImportProductMigrationFileUploadForm(request.POST,
                                                    request.FILES)
        if form.is_valid():
            # file is valid, save and execute the import job
            job_file = JobFile(file=request.FILES['excel_file'])
            job_file.save()

            eta = now() + timedelta(seconds=3)
            task = tasks.import_product_migrations.apply_async(
                eta=eta,
                kwargs={
                    "job_file_id": job_file.id,
                    "user_for_revision": request.user.username
                })

            set_meta_data_for_task(
                task_id=task.id,
                title="Import product migrations from Excel sheet",
                auto_redirect=False,
                redirect_to=reverse("productdb:import_product_migrations"))

            return redirect(
                reverse("task_in_progress", kwargs={"task_id": task.id}))

    else:
        form = ImportProductMigrationFileUploadForm()

    context["form"] = form

    return render(request,
                  "productdb/import/import_product_migrations.html",
                  context=context)
Example #2
0
def import_product_migrations(request):
    context = {}
    if request.method == "POST":
        form = ImportProductMigrationFileUploadForm(request.POST, request.FILES)
        if form.is_valid():
            # file is valid, save and execute the import job
            job_file = JobFile(file=request.FILES["excel_file"])
            job_file.save()

            task = tasks.import_product_migrations.delay(
                job_file_id=job_file.id, user_for_revision=request.user.username
            )
            set_meta_data_for_task(
                task_id=task.id,
                title="Import product migrations from Excel sheet",
                auto_redirect=False,
                redirect_to=reverse("productdb:import_product_migrations"),
            )

            return redirect(reverse("task_in_progress", kwargs={"task_id": task.id}))

    else:
        form = ImportProductMigrationFileUploadForm()

    context["form"] = form

    return render(request, "productdb/import/import_product_migrations.html", context=context)
    def test_form(self):
        form = ImportProductMigrationFileUploadForm(data={}, files={})
        assert form.is_valid() is False
        assert "excel_file" in form.errors
        assert "This field is required." in str(form.errors["excel_file"])

        # verify only the file name, the content will raise an Exception in the further processing
        files = {
            "excel_file": SimpleUploadedFile("myfile", b"yxz")
        }
        form = ImportProductMigrationFileUploadForm(data={}, files=files)
        assert form.is_valid() is False
        assert "excel_file" in form.errors
        assert "file type not supported" in str(form.errors["excel_file"])

        files = {
            "excel_file": SimpleUploadedFile("myfile.png", b"yxz")
        }
        form = ImportProductMigrationFileUploadForm(data={}, files=files)
        assert form.is_valid() is False
        assert "excel_file" in form.errors
        assert "only .xlsx files are allowed" in str(form.errors["excel_file"])

        files = {
            "excel_file": SimpleUploadedFile("myfile.xlsx", b"")
        }
        form = ImportProductMigrationFileUploadForm(data={}, files=files)
        assert form.is_valid() is False
        assert "excel_file" in form.errors
        assert "The submitted file is empty." in str(form.errors["excel_file"])

        files = {
            "excel_file": SimpleUploadedFile("myfile.xlsx", b"yxz")
        }
        form = ImportProductMigrationFileUploadForm(data={}, files=files)
        assert form.is_valid() is True
Example #4
0
    def test_form(self):
        form = ImportProductMigrationFileUploadForm(data={}, files={})
        assert form.is_valid() is False
        assert "excel_file" in form.errors
        assert "This field is required." in str(form.errors["excel_file"])

        # verify only the file name, the content will raise an Exception in the further processing
        files = {"excel_file": SimpleUploadedFile("myfile", b"yxz")}
        form = ImportProductMigrationFileUploadForm(data={}, files=files)
        assert form.is_valid() is False
        assert "excel_file" in form.errors
        assert "file type not supported" in str(form.errors["excel_file"])

        files = {"excel_file": SimpleUploadedFile("myfile.png", b"yxz")}
        form = ImportProductMigrationFileUploadForm(data={}, files=files)
        assert form.is_valid() is False
        assert "excel_file" in form.errors
        assert "only .xlsx files are allowed" in str(form.errors["excel_file"])

        files = {"excel_file": SimpleUploadedFile("myfile.xlsx", b"")}
        form = ImportProductMigrationFileUploadForm(data={}, files=files)
        assert form.is_valid() is False
        assert "excel_file" in form.errors
        assert "The submitted file is empty." in str(form.errors["excel_file"])

        files = {"excel_file": SimpleUploadedFile("myfile.xlsx", b"yxz")}
        form = ImportProductMigrationFileUploadForm(data={}, files=files)
        assert form.is_valid() is True