2021-03-06 17:03:50 +01:00
|
|
|
import pytest
|
|
|
|
|
2018-09-27 01:52:35 +02:00
|
|
|
from platypush.event.hook import EventCondition
|
2018-01-03 00:16:01 +01:00
|
|
|
from platypush.message.event.ping import PingEvent
|
|
|
|
|
2021-02-27 15:01:25 +01:00
|
|
|
|
2021-03-06 16:21:28 +01:00
|
|
|
condition = EventCondition.build({
|
|
|
|
'type': 'platypush.message.event.ping.PingEvent',
|
|
|
|
'message': 'This is (the)? answer: ${answer}'
|
|
|
|
})
|
2018-01-03 00:16:01 +01:00
|
|
|
|
|
|
|
|
2021-03-06 16:21:28 +01:00
|
|
|
def test_event_parse():
|
|
|
|
"""
|
|
|
|
Test for the events/conditions matching logic.
|
|
|
|
"""
|
|
|
|
message = "GARBAGE GARBAGE this is the answer: 42"
|
|
|
|
event = PingEvent(message=message)
|
|
|
|
result = event.matches_condition(condition)
|
|
|
|
assert result.is_match
|
|
|
|
assert 'answer' in result.parsed_args
|
|
|
|
assert result.parsed_args['answer'] == '42'
|
2018-01-03 00:16:01 +01:00
|
|
|
|
2021-03-06 16:21:28 +01:00
|
|
|
message = "what is not the answer? 43"
|
|
|
|
event = PingEvent(message=message)
|
|
|
|
result = event.matches_condition(condition)
|
|
|
|
assert not result.is_match
|
2018-01-03 00:16:01 +01:00
|
|
|
|
|
|
|
|
2021-03-06 17:03:50 +01:00
|
|
|
if __name__ == '__main__':
|
|
|
|
pytest.main()
|
|
|
|
|
|
|
|
|
2018-01-03 00:16:01 +01:00
|
|
|
# vim:sw=4:ts=4:et:
|