add attachment model and task order relation to it
This commit is contained in:
@@ -3,25 +3,34 @@ import pytest
|
||||
import alembic.config
|
||||
import alembic.command
|
||||
from logging.config import dictConfig
|
||||
from werkzeug.datastructures import FileStorage
|
||||
from tempfile import TemporaryDirectory
|
||||
|
||||
from atst.app import make_app, make_config
|
||||
from atst.database import db as _db
|
||||
import tests.factories as factories
|
||||
from tests.mocks import PDF_FILENAME
|
||||
|
||||
dictConfig({"version": 1, "handlers": {"wsgi": {"class": "logging.NullHandler"}}})
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def app(request):
|
||||
upload_dir = TemporaryDirectory()
|
||||
|
||||
config = make_config()
|
||||
config.update({"STORAGE_CONTAINER": upload_dir.name})
|
||||
|
||||
_app = make_app(config)
|
||||
|
||||
ctx = _app.app_context()
|
||||
ctx.push()
|
||||
|
||||
|
||||
yield _app
|
||||
|
||||
upload_dir.cleanup()
|
||||
|
||||
ctx.pop()
|
||||
|
||||
|
||||
@@ -103,3 +112,9 @@ def user_session(monkeypatch, session):
|
||||
)
|
||||
|
||||
return set_user_session
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def pdf_upload():
|
||||
with open(PDF_FILENAME, "rb") as fp:
|
||||
yield FileStorage(fp, content_type="application/pdf")
|
||||
|
||||
@@ -11,3 +11,6 @@ DOD_SDN = f"CN={DOD_SDN_INFO['last_name']}.{DOD_SDN_INFO['first_name']}.G.{DOD_S
|
||||
MOCK_VALID_PE_ID = "8675309U"
|
||||
|
||||
FIXTURE_EMAIL_ADDRESS = "artgarfunkel@uso.mil"
|
||||
|
||||
PDF_FILENAME = "tests/fixtures/sample.pdf"
|
||||
|
||||
|
||||
18
tests/models/test_attachment.py
Normal file
18
tests/models/test_attachment.py
Normal file
@@ -0,0 +1,18 @@
|
||||
import pytest
|
||||
from werkzeug.datastructures import FileStorage
|
||||
|
||||
from atst.models.attachment import Attachment, AttachmentError
|
||||
|
||||
from tests.mocks import PDF_FILENAME
|
||||
|
||||
|
||||
def test_attach(pdf_upload):
|
||||
attachment = Attachment.attach(pdf_upload)
|
||||
assert attachment.filename == PDF_FILENAME
|
||||
|
||||
|
||||
def test_attach_raises():
|
||||
with open(PDF_FILENAME, "rb") as fp:
|
||||
fs = FileStorage(fp, content_type="something/else")
|
||||
with pytest.raises(AttachmentError):
|
||||
Attachment.attach(fs)
|
||||
@@ -4,6 +4,8 @@ from werkzeug.datastructures import FileStorage
|
||||
|
||||
from atst.uploader import Uploader, UploadError
|
||||
|
||||
from tests.mocks import PDF_FILENAME
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def upload_dir(tmpdir):
|
||||
@@ -15,22 +17,16 @@ def uploader(upload_dir):
|
||||
return Uploader("LOCAL", container=upload_dir)
|
||||
|
||||
|
||||
PDF_FILENAME = "tests/fixtures/sample.pdf"
|
||||
NONPDF_FILENAME = "tests/fixtures/disa-pki.html"
|
||||
|
||||
@pytest.fixture
|
||||
def pdf():
|
||||
with open(PDF_FILENAME, "rb") as fp:
|
||||
yield FileStorage(fp, content_type="application/pdf")
|
||||
|
||||
|
||||
def test_upload(uploader, upload_dir, pdf):
|
||||
filename, object_name = uploader.upload(pdf)
|
||||
def test_upload(uploader, upload_dir, pdf_upload):
|
||||
filename, object_name = uploader.upload(pdf_upload)
|
||||
assert filename == PDF_FILENAME
|
||||
assert os.path.isfile(os.path.join(upload_dir, object_name))
|
||||
|
||||
|
||||
def test_upload_fails_for_non_pdfs(uploader, pdf):
|
||||
def test_upload_fails_for_non_pdfs(uploader):
|
||||
with open(NONPDF_FILENAME, "rb") as fp:
|
||||
fs = FileStorage(fp, content_type="text/plain")
|
||||
with pytest.raises(UploadError):
|
||||
|
||||
Reference in New Issue
Block a user