from fastapi.testclient import TestClient from app.wekan.api import Wekan from .main import app client = TestClient(app) def test_read_main(): response = client.get("/") assert response.status_code == 200 assert response.json() == {"message": "Hello World"} def test_hook(): d = """{ "body": "Test Notification from transport hook", "severity": "notice", "user_email": "root@localhost", "user_username": "akadmin" }""" response = client.post("/hook", data=d) assert response.status_code == 200 def test_hook_model_created(mocker): mock = mocker.patch('app.wekan.api.Wekan.create_user', return_value='fake user') print(mock.mock_calls) d = """ { "body": "model_created: {'model': {'pk': 18, 'app': 'authentik_core', 'name': 'bernd', 'model_name': 'user'}, 'http_request': {'args': {}, 'path': '/api/v3/core/users/', 'method': 'POST'}}", "severity": "alert", "user_email": "flip@yksflip.de", "user_username": "akadmin" } """ response = client.post("/hook", data=d, ) assert response.status_code == 200 assert len(mock.mock_calls) > 0 kall = mock.call_args assert kall.args[0] == "18" # assert str(response.text) == 'fake user'