integrate/app/test_event_controller.py

23 lines
1.0 KiB
Python

from app.authentik.models import User
from pytest_mock import MockerFixture
from .event_controller import Authentik_Hook_Model, Event_Controller
import pytest
def test_handle_model_created_event(mocker: MockerFixture):
mock_user = User(pk="5", username="asd", name="asd", email="asd@example.org")
wekan_mock = mocker.MagicMock()
wekan_mock.get_user.return_value = None
authentik_mock = mocker.MagicMock()
authentik_mock.get_user_by_pk.return_value = mock_user
model = Authentik_Hook_Model(pk=mock_user.pk, app="authentik_core", name=mock_user.name, model_name="user")
ec = Event_Controller()
ec.register_api(authentik_mock, wekan_mock)
ec.handle_model_created_event(model)
ec.authentik.get_user_by_pk.assert_called()
ec.authentik.get_user_by_pk.assert_called_with("5")
ec.wekan.get_user.assert_called()
ec.wekan.get_user.assert_called_with("asd")
ec.wekan.create_user.assert_called()
ec.wekan.create_user.assert_called_with(username=mock_user.username, email=mock_user.email, password="")