Update EventHandler/Processor tests after adding required events
This commit is contained in:
parent
2fbab32816
commit
9f500d2061
1 changed files with 65 additions and 0 deletions
|
@ -13,11 +13,13 @@
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
from typing import Dict
|
from typing import Dict
|
||||||
|
from typing import List
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from tracetools_analysis.processor import EventHandler
|
from tracetools_analysis.processor import EventHandler
|
||||||
from tracetools_analysis.processor import EventMetadata
|
from tracetools_analysis.processor import EventMetadata
|
||||||
from tracetools_analysis.processor import Processor
|
from tracetools_analysis.processor import Processor
|
||||||
|
from tracetools_analysis.processor import RequiredEventNotFoundError
|
||||||
|
|
||||||
|
|
||||||
class StubHandler1(EventHandler):
|
class StubHandler1(EventHandler):
|
||||||
|
@ -64,6 +66,47 @@ class WrongHandler(EventHandler):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class MissingEventHandler(EventHandler):
|
||||||
|
|
||||||
|
def __init__(self) -> None:
|
||||||
|
handler_map = {
|
||||||
|
'myeventname': self._handler_whatever,
|
||||||
|
}
|
||||||
|
super().__init__(handler_map=handler_map)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def required_events() -> List[str]:
|
||||||
|
return [
|
||||||
|
'no_handler_for_this',
|
||||||
|
'myeventname',
|
||||||
|
]
|
||||||
|
|
||||||
|
def _handler_whatever(
|
||||||
|
self, event: Dict, metadata: EventMetadata
|
||||||
|
) -> None:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class EventHandlerWithRequiredEvent(EventHandler):
|
||||||
|
|
||||||
|
def __init__(self) -> None:
|
||||||
|
handler_map = {
|
||||||
|
'myrequiredevent': self._handler_whatever,
|
||||||
|
}
|
||||||
|
super().__init__(handler_map=handler_map)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def required_events() -> List[str]:
|
||||||
|
return [
|
||||||
|
'myrequiredevent',
|
||||||
|
]
|
||||||
|
|
||||||
|
def _handler_whatever(
|
||||||
|
self, event: Dict, metadata: EventMetadata
|
||||||
|
) -> None:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class TestProcessor(unittest.TestCase):
|
class TestProcessor(unittest.TestCase):
|
||||||
|
|
||||||
def __init__(self, *args) -> None:
|
def __init__(self, *args) -> None:
|
||||||
|
@ -95,6 +138,28 @@ class TestProcessor(unittest.TestCase):
|
||||||
self.assertTrue(handler1.handler_called, 'event handler not called')
|
self.assertTrue(handler1.handler_called, 'event handler not called')
|
||||||
self.assertTrue(handler2.handler_called, 'event handler not called')
|
self.assertTrue(handler2.handler_called, 'event handler not called')
|
||||||
|
|
||||||
|
def test_assert_handler_functions_for_required_events(self) -> None:
|
||||||
|
with self.assertRaises(AssertionError):
|
||||||
|
MissingEventHandler()
|
||||||
|
|
||||||
|
def test_check_required_events(self) -> None:
|
||||||
|
mock_event = {
|
||||||
|
'_name': 'myeventname',
|
||||||
|
'_timestamp': 0,
|
||||||
|
'cpu_id': 0,
|
||||||
|
}
|
||||||
|
# Fails check
|
||||||
|
with self.assertRaises(RequiredEventNotFoundError):
|
||||||
|
Processor(EventHandlerWithRequiredEvent()).process([mock_event])
|
||||||
|
|
||||||
|
required_mock_event = {
|
||||||
|
'_name': 'myrequiredevent',
|
||||||
|
'_timestamp': 69,
|
||||||
|
'cpu_id': 0,
|
||||||
|
}
|
||||||
|
# Passes check
|
||||||
|
Processor(EventHandlerWithRequiredEvent()).process([required_mock_event, mock_event])
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue