Skip to content

Commit e132ace

Browse files
jomuelLefterisJP
authored andcommitted
Add unit tests for timestamped events
[ci integration]
1 parent 534a14d commit e132ace

File tree

2 files changed

+51
-1
lines changed

2 files changed

+51
-1
lines changed

raiden/tests/unit/api/test_api_events.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
import pytest
22

3+
from raiden.api.v1.encoding import EventPaymentSentFailedSchema
34
from raiden.blockchain.events import get_contract_events
45
from raiden.exceptions import InvalidBlockNumberInput
6+
from raiden.storage.utils import TimestampedEvent
7+
8+
from raiden.tests.utils import factories
59
from raiden.tests.utils.factories import ADDR
10+
from raiden.transfer.events import EventPaymentSentFailed
611

712

813
def test_get_contract_events_invalid_blocknumber():
@@ -17,3 +22,26 @@ def test_get_contract_events_invalid_blocknumber():
1722

1823
with pytest.raises(InvalidBlockNumberInput):
1924
get_contract_events(None, {}, ADDR, [], 1, 999999999999999999999999)
25+
26+
27+
def test_v1_event_payment_sent_failed_schema():
28+
event = EventPaymentSentFailed(
29+
factories.make_payment_network_identifier(),
30+
factories.make_address(),
31+
1,
32+
factories.make_address(),
33+
'whatever',
34+
)
35+
log_time = '2018-09-07T20:02:35.000'
36+
37+
timestamped = TimestampedEvent(event, log_time)
38+
39+
dumped = EventPaymentSentFailedSchema().dump(timestamped)
40+
41+
expected = {
42+
'event': 'EventPaymentSentFailed',
43+
'log_time': log_time,
44+
'reason': 'whatever',
45+
}
46+
47+
assert all(dumped.data.get(key) == value for key, value in expected.items())

raiden/tests/unit/test_wal.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from raiden.exceptions import InvalidDBData
77
from raiden.storage.serialize import JSONSerializer
88
from raiden.storage.sqlite import RAIDEN_DB_VERSION, SQLiteStorage
9+
from raiden.storage.utils import TimestampedEvent
910
from raiden.storage.wal import WriteAheadLog, restore_from_latest_snapshot
1011
from raiden.tests.utils import factories
1112
from raiden.transfer.architecture import State, StateManager, TransitionResult
@@ -131,6 +132,22 @@ def test_write_read_log():
131132
assert wal.storage.get_latest_state_snapshot() == (2, 'BBBB')
132133

133134

135+
def test_timestamped_event():
136+
event = EventPaymentSentFailed(
137+
factories.make_payment_network_identifier(),
138+
factories.make_address(),
139+
1,
140+
factories.make_address(),
141+
'whatever',
142+
)
143+
log_time = '2018-09-07T20:02:35.000'
144+
145+
timestamped = TimestampedEvent(event, log_time)
146+
assert timestamped.log_time == log_time
147+
assert timestamped.reason == timestamped.wrapped_event.reason == 'whatever'
148+
assert timestamped.identifier == 1
149+
150+
134151
def test_write_read_events():
135152
wal = new_wal()
136153

@@ -148,21 +165,26 @@ def test_write_read_events():
148165
wal.storage.write_events(
149166
unexisting_state_change_id,
150167
event_list,
168+
'2018-08-31T17:38:00.000',
151169
)
152170

153171
previous_events = wal.storage.get_events()
154172

173+
log_time = '2018-09-07T20:02:35.0000'
155174
state_change_id = wal.storage.write_state_change('statechangedata')
156175
wal.storage.write_events(
157176
state_change_id,
158177
event_list,
178+
log_time,
159179
)
160180

161181
new_events = wal.storage.get_events()
162182
assert len(previous_events) + 1 == len(new_events)
163183

164184
latest_event = new_events[-1]
165-
assert isinstance(latest_event, EventPaymentSentFailed)
185+
assert isinstance(latest_event, TimestampedEvent)
186+
assert isinstance(latest_event.wrapped_event, EventPaymentSentFailed)
187+
assert latest_event.log_time == log_time
166188

167189

168190
def test_restore_without_snapshot():

0 commit comments

Comments
 (0)