-
Notifications
You must be signed in to change notification settings - Fork 111
Expand file tree
/
Copy pathtest_ticks.py
More file actions
36 lines (26 loc) · 919 Bytes
/
test_ticks.py
File metadata and controls
36 lines (26 loc) · 919 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from typing import List
from i3ipc.events import TickEvent
from .ipctest import IpcTest
import pytest
import asyncio
class TestTicks(IpcTest):
events: List[TickEvent] = []
async def on_tick(self, i3, e):
self.events.append(e)
if len(self.events) == 3:
i3.main_quit()
@pytest.mark.asyncio
async def test_tick_event(self, i3):
i3.on('tick', self.on_tick)
def send_ticks():
asyncio.ensure_future(i3.send_tick())
asyncio.ensure_future(i3.send_tick('hello world'))
i3._loop.call_later(0.1, send_ticks)
await i3.main()
assert len(self.events) == 3
assert self.events[0].first
assert self.events[0].payload == ''
assert not self.events[1].first
assert self.events[1].payload == ''
assert not self.events[2].first
assert self.events[2].payload == 'hello world'