From 6375b2394eab075af6e7488d343131dc99fd7c3b Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Tue, 21 Jun 2022 03:55:42 +0300 Subject: Test the upload of zip files works as expected - Ensure errors respond with status code 400 - Ensure error messages are displayed for any invalid zip file that is uploaded. --- qc_app/entry.py | 6 +++--- tests/test_data/average.tsv.zip | Bin 0 -> 35479706 bytes tests/test_data/empty.zip | Bin 0 -> 22 bytes tests/test_data/multiple_files.zip | Bin 0 -> 35495094 bytes tests/test_data/non_tsv.zip | Bin 0 -> 224 bytes 5 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 tests/test_data/average.tsv.zip create mode 100644 tests/test_data/empty.zip create mode 100644 tests/test_data/multiple_files.zip create mode 100644 tests/test_data/non_tsv.zip diff --git a/qc_app/entry.py b/qc_app/entry.py index c53648a..efcaf4e 100644 --- a/qc_app/entry.py +++ b/qc_app/entry.py @@ -55,7 +55,7 @@ def zip_file_errors(filepath, upload_dir) -> Tuple[str, ...]: if len(infolist) != 1: zfile_errors = zfile_errors + ( ("Expected exactly one (1) member file within the uploaded zip " - "file. Got {len(infolist)} member files."),) + f"file. Got {len(infolist)} member files."),) if len(infolist) == 1 and infolist[0].is_dir(): zfile_errors = zfile_errors + ( ("Expected a member text file in the uploaded zip file. Got a " @@ -82,7 +82,7 @@ def upload_file(): if request_errors: for error in request_errors: flash(error, "alert-error") - return render_template("index.html") + return render_template("index.html"), 400 filename = secure_filename(request.files["qc_text_file"].filename) if not os.path.exists(upload_dir): @@ -95,7 +95,7 @@ def upload_file(): if zip_errors: for error in zip_errors: flash(error, "alert-error") - return render_template("index.html") + return render_template("index.html"), 400 return redirect(url_for( "parse.parse", filename=filename, diff --git a/tests/test_data/average.tsv.zip b/tests/test_data/average.tsv.zip new file mode 100644 index 0000000..09dda4e Binary files /dev/null and b/tests/test_data/average.tsv.zip differ diff --git a/tests/test_data/empty.zip b/tests/test_data/empty.zip new file mode 100644 index 0000000..15cb0ec Binary files /dev/null and b/tests/test_data/empty.zip differ diff --git a/tests/test_data/multiple_files.zip b/tests/test_data/multiple_files.zip new file mode 100644 index 0000000..5c2d028 Binary files /dev/null and b/tests/test_data/multiple_files.zip differ diff --git a/tests/test_data/non_tsv.zip b/tests/test_data/non_tsv.zip new file mode 100644 index 0000000..b3787a6 Binary files /dev/null and b/tests/test_data/non_tsv.zip differ -- cgit v1.2.3