basic task order pdf downloads

This commit is contained in:
dandds
2018-09-05 17:45:12 -04:00
parent e8aa905a99
commit 0391348b5d
6 changed files with 81 additions and 5 deletions

View File

@@ -0,0 +1,38 @@
import os
from flask import url_for
from atst.models.attachment import Attachment
from tests.factories import RequestFactory, TaskOrderFactory, UserFactory
def test_approval():
pass
def test_task_order_download(app, client, user_session, pdf_upload):
user = UserFactory.create()
user_session(user)
attachment = Attachment.attach(pdf_upload)
task_order = TaskOrderFactory.create(number="abc123", pdf=attachment)
request = RequestFactory.create(task_order=task_order, creator=user)
# ensure that real data for pdf upload has been flushed to disk
pdf_upload.seek(0)
pdf_content = pdf_upload.read()
pdf_upload.close()
full_path = os.path.join(app.config.get("STORAGE_CONTAINER"), attachment.object_name)
with open(full_path, "wb") as output_file:
output_file.write(pdf_content)
output_file.flush()
response = client.get(url_for("requests.task_order_pdf_download", request_id=request.id))
assert response.data == pdf_content
def test_task_order_download_does_not_exist(client, user_session):
user = UserFactory.create()
user_session(user)
request = RequestFactory.create(creator=user)
response = client.get(url_for("requests.task_order_pdf_download", request_id=request.id))
assert response.status_code == 404

View File

@@ -31,3 +31,19 @@ def test_upload_fails_for_non_pdfs(uploader):
fs = FileStorage(fp, content_type="text/plain")
with pytest.raises(UploadError):
uploader.upload(fs)
def test_download_stream(upload_dir, uploader, pdf_upload):
# write pdf content to upload file storage and make sure it is flushed to
# disk
pdf_upload.seek(0)
pdf_content = pdf_upload.read()
pdf_upload.close()
full_path = os.path.join(upload_dir, "abc")
with open(full_path, "wb") as output_file:
output_file.write(pdf_content)
output_file.flush()
stream = uploader.download_stream("abc")
stream_content = b"".join([b for b in stream])
assert pdf_content == stream_content