from atlas_um.audit import Auditor class TestAuditor: def test_log(self, mocker, app, faker): event_name = faker.pystr() event_kwargs = {"test_arg": "test_value"} mocked_processor = mocker.MagicMock() auditor = Auditor() mocked_context = mocker.patch.object( Auditor, "_get_context" ).return_value auditor.attach_processor(mocked_processor) auditor.log(event_name, **event_kwargs) assert mocked_processor.process.call_args_list == [ mocker.call(event_name, mocked_context, **event_kwargs) ] def test_track(self, mocker, app, faker): event_name = faker.pystr() event_kwargs = {"test_arg": "test_value"} mocked_func = mocker.MagicMock() mocker.spy(Auditor, "log") auditor = Auditor() decorated = auditor.track(event_name)(mocked_func) decorated(**event_kwargs) assert auditor.log.call_args_list == [ mocker.call( auditor, event_name, result=mocked_func.return_value, args=(), **event_kwargs, ) ]