Backport module for sys.audit and sys.addaudithook mechanism
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

45 lines
1.0 KiB

import mock
import sysaudit
def test_basic():
test_hook = mock.Mock()
event_hook = mock.Mock()
sysaudit.subscribe("test", test_hook)
sysaudit.subscribe("event", event_hook)
assert sysaudit._subscriptions == dict(test=[test_hook], event=[event_hook])
sysaudit.audit("test", 1)
sysaudit.audit("test", 2)
sysaudit.audit("event", 3)
sysaudit.audit("event", 4)
sysaudit.audit("event", 5)
assert test_hook.mock_calls == [
mock.call((1,)),
mock.call((2,)),
]
assert event_hook.mock_calls == [
mock.call((3,)),
mock.call((4,)),
mock.call((5,)),
]
def test_multiple_hooks():
test_hook_1 = mock.Mock()
test_hook_2 = mock.Mock()
test_hook_3 = mock.Mock()
sysaudit.subscribe("test", test_hook_1)
sysaudit.subscribe("test", test_hook_2)
sysaudit.subscribe("test", test_hook_3)
sysaudit.audit("test", 1)
test_hook_1.assert_called_once_with(((1,)))
test_hook_2.assert_called_once_with(((1,)))
test_hook_3.assert_called_once_with(((1,)))