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)
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
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