aboutsummaryrefslogtreecommitdiff
path: root/tests/qc_app/test_expression_data_pages.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/qc_app/test_expression_data_pages.py')
-rw-r--r--tests/qc_app/test_expression_data_pages.py92
1 files changed, 0 insertions, 92 deletions
diff --git a/tests/qc_app/test_expression_data_pages.py b/tests/qc_app/test_expression_data_pages.py
deleted file mode 100644
index c2f7de1..0000000
--- a/tests/qc_app/test_expression_data_pages.py
+++ /dev/null
@@ -1,92 +0,0 @@
-"""Test expression data path"""
-import pytest
-
-from tests.conftest import uploadable_file_object
-
-def test_basic_elements_present_in_index_page(client):
- """
- GIVEN: A flask application testing client
- WHEN: the index page is requested with the "GET" method and no data
- THEN: verify that the response contains error notifications
- """
- response = client.get("/upload")
- assert response.status_code == 200
- ## form present
- assert b'<form action="/upload"' in response.data
- assert b'method="POST"' in response.data
- assert b'enctype="multipart/form-data"' in response.data
- assert b'</form>' in response.data
- ## filetype elements
- assert b'<input type="radio" name="filetype"' in response.data
- assert b'id="filetype_standard_error"' in response.data
- assert b'id="filetype_average"' in response.data
- ## file upload elements
- assert b'<label for="file_upload"' in response.data
- assert b'select file' in response.data
- assert b'<input type="file" name="qc_text_file"' in response.data
- assert b'id="file_upload"' in response.data
- ## submit button
- assert b'<button type="submit"' in response.data
-
-
-def test_post_notifies_errors_if_no_data_is_provided(client):
- """
- GIVEN: A flask application testing client
- WHEN: the index page is requested with the "POST" method and with no
- data provided
- THEN: ensure the system responds woit the appropriate error messages
- """
- response = client.post("/upload", data={}, follow_redirects=True)
- assert len(response.history) == 1
- redirect = response.history[0]
- assert redirect.status_code == 302
- assert redirect.location == "/upload"
-
- assert response.status_code == 200
- assert b'Invalid file type provided.' in response.data
- assert b'No file was uploaded.' in response.data
-
-def test_post_with_correct_data(client):
- """
- GIVEN: A flask application testing client
- WHEN: the index page is requested with the "POST" method and with the
- appropriate data provided
- THEN: ensure the system redirects to the parse endpoint with the filename
- and filetype
- """
- response = client.post(
- "/upload", data={
- "speciesid": 1,
- "filetype": "average",
- "qc_text_file": uploadable_file_object("no_data_errors.tsv")
- })
-
- assert response.status_code == 302
- assert b'Redirecting...' in response.data
- assert (
- b'/parse/parse?speciesid=1&amp;filename=no_data_errors.tsv&amp;filetype=average'
- in response.data)
-
-
-@pytest.mark.parametrize(
- "request_data,error_message",
- (({"filetype": "invalid_choice",
- "qc_text_file": uploadable_file_object("no_data_errors.tsv")},
- b'Invalid file type provided.'),
- ({"filetype": "average"}, b'No file was uploaded.'),
- ({"filetype": "standard-error"}, b'No file was uploaded.')))
-def test_post_with_missing_or_invalid_data(client, request_data,error_message):
- """
- GIVEN: A flask application testing client
- WHEN: the index page is requested with the "POST" method and with data
- either being missing or invalid
- THEN: ensure that the system responds with the appropriate error message
- """
- response = client.post("/upload", data=request_data, follow_redirects=True)
- assert len(response.history) == 1
- redirect = response.history[0]
- assert redirect.status_code == 302
- assert redirect.location == "/upload"
-
- assert response.status_code == 200
- assert error_message in response.data