def test_inboxes(): user, password = "******", "p1" resp = {"inbox_list": ["a", "b"]} client = LathermailClient(user, password) @httmock.all_requests def inboxes_mock(url, request): assert url.path == "/api/0/inboxes" assert request.headers["X-Mail-Password"] == password assert "X-Mail-Inbox" not in request.headers return json_response(resp) with httmock.HTTMock(inboxes_mock): assert client.get_inboxes() == resp["inbox_list"] password = "******" assert client.get_inboxes(password) == resp["inbox_list"]
def test_exceptions(): user, password = "******", "p1" client = LathermailClient(user, password) resp = None @httmock.all_requests def req_mock(url, request): return resp with httmock.HTTMock(req_mock): for code in 400, 403, 500: resp = json_response({"a": "b"}, code) with pytest.raises(InvalidStatus) as e: client.get_inboxes() assert e.value.code == code content = b"<html>not json here </html>" resp = httmock.response(200, content=content) with pytest.raises(LathermailError) as e: client.get_inboxes() assert content.decode("utf8") in repr(e.value)