mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-04 02:11:11 -05:00
Merge pull request #891 from alphagov/api-to-start-dvla-file-sending
Api to start dvla file sending
This commit is contained in:
0
tests/app/letters/__init__.py
Normal file
0
tests/app/letters/__init__.py
Normal file
30
tests/app/letters/test_letter_schemas.py
Normal file
30
tests/app/letters/test_letter_schemas.py
Normal file
@@ -0,0 +1,30 @@
|
||||
import json
|
||||
import uuid
|
||||
|
||||
import pytest
|
||||
from jsonschema import ValidationError
|
||||
|
||||
from app.letters.letter_schemas import letter_job_ids
|
||||
from app.schema_validation import validate
|
||||
|
||||
|
||||
def test_letter_job_id_retuns_400_if_array_is_empty():
|
||||
with pytest.raises(ValidationError) as e:
|
||||
validate({"job_ids": []}, letter_job_ids)
|
||||
error = json.loads(str(e.value))
|
||||
assert len(error.keys()) == 2
|
||||
assert error.get('errors')[0]['message'] == 'job_ids [] is too short'
|
||||
|
||||
|
||||
def test_letter_job_id_retuns_400_if_array_doesnot_contain_uuids():
|
||||
with pytest.raises(ValidationError) as e:
|
||||
validate({"job_ids": ["1", "2"]}, letter_job_ids)
|
||||
error = json.loads(str(e.value))
|
||||
assert len(error.keys()) == 2
|
||||
assert error.get('errors')[0]['message'] == 'job_ids is not a valid UUID'
|
||||
|
||||
|
||||
def test_letter_job():
|
||||
ids_ = {"job_ids": [str(uuid.uuid4()), str(uuid.uuid4())]}
|
||||
j = validate(ids_, letter_job_ids)
|
||||
assert j == ids_
|
||||
42
tests/app/letters/test_send_letter_jobs.py
Normal file
42
tests/app/letters/test_send_letter_jobs.py
Normal file
@@ -0,0 +1,42 @@
|
||||
import uuid
|
||||
|
||||
from flask import current_app
|
||||
from flask import json
|
||||
|
||||
from tests import create_authorization_header
|
||||
|
||||
|
||||
def test_send_letter_jobs(client, mocker):
|
||||
mock_celery = mocker.patch("app.letters.send_letter_jobs.notify_celery.send_task")
|
||||
job_ids = {"job_ids": [str(uuid.uuid4()), str(uuid.uuid4()), str(uuid.uuid4())]}
|
||||
|
||||
auth_header = create_authorization_header()
|
||||
|
||||
response = client.post(
|
||||
path='/send-letter-jobs',
|
||||
data=json.dumps(job_ids),
|
||||
headers=[('Content-Type', 'application/json'), auth_header])
|
||||
|
||||
assert response.status_code == 200
|
||||
assert response.get_data(as_text=True) == "Task created to send files to DVLA"
|
||||
|
||||
mock_celery.assert_called_once_with(name="send-files-to-dvla",
|
||||
args=(job_ids['job_ids'],),
|
||||
queue="process-ftp")
|
||||
|
||||
|
||||
def test_send_letter_jobs_throws_validation_error(client, mocker):
|
||||
mock_celery = mocker.patch("app.letters.send_letter_jobs.notify_celery.send_task")
|
||||
|
||||
job_ids = {"job_ids": ["1", "2"]}
|
||||
|
||||
auth_header = create_authorization_header()
|
||||
|
||||
response = client.post(
|
||||
path='/send-letter-jobs',
|
||||
data=json.dumps(job_ids),
|
||||
headers=[('Content-Type', 'application/json'), auth_header])
|
||||
|
||||
assert response.status_code == 400
|
||||
|
||||
assert not mock_celery.called
|
||||
Reference in New Issue
Block a user