From 8f7840fb7c9dda29a903fe08f448fb3634118e72 Mon Sep 17 00:00:00 2001 From: maike Date: Thu, 9 Jul 2020 03:12:46 +0200 Subject: [PATCH] [tests] Email API happy path works now --- tests/test_api_email_happy_path.py | 43 +++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/tests/test_api_email_happy_path.py b/tests/test_api_email_happy_path.py index a827dee..3f65b50 100644 --- a/tests/test_api_email_happy_path.py +++ b/tests/test_api_email_happy_path.py @@ -3,8 +3,45 @@ # SPDX-License-Identifier: 0BSD from fastapi import status +from logging import getLogger, INFO, WARNING, Handler -def test_email_create_unauthorized(client, hood_id): - response = client.post('/api/hoods/%d/email/' % hood_id) - assert response.status_code == status.HTTP_401_UNAUTHORIZED +class CaptureHandler(Handler): + def __init__(self): + super().__init__() + self.records = [] + + def emit(self, record): + self.records.append(record) + + +def test_email_create(client, hood_id, auth_header): + response = client.post('/api/hoods/%d/email/' % hood_id, headers=auth_header) + assert response.status_code == status.HTTP_201_CREATED + assert response.json()["hood"]["id"] == hood_id + # response = client.post('/api/hoods/%d/email/' % hood_id, headers=auth_header) + # assert response.status_code == status.HTTP_409_CONFLICT + + +def test_email_subscribe(client, hood_id, auth_header): + logger = getLogger() + capture = CaptureHandler() + logger.setLevel(INFO) + logger.addHandler(capture) + response = client.post( + '/api/hoods/%d/email/subscribe/' % hood_id, json={'email': 'test@localhost'} + ) + logger.setLevel(WARNING) + logger.removeHandler(capture) + assert response.status_code == status.HTTP_502_BAD_GATEWAY + token = capture.records[0].message + response = client.get('/api/hoods/%d/email/subscribe/confirm/%s' % (hood_id, token)) + assert response.status_code == status.HTTP_201_CREATED + # response = client.get('/api/hoods/%d/email/subscribe/confirm/%s' % (hood_id, token)) + # assert response.status_code == status.HTTP_409_CONFLICT + + +# def test_email_subscribe_confirm +# def test_email_send_mda -> call kibicara_mda.py like an MDA would +# def test_email_message -> write directly to API +# def test_email_delete