Skip to content

Commit a07363b

Browse files
authored
Merge pull request #37 from datashaman/hotfix/event-test
Ensure event handler is called in event test
2 parents 7f1cf75 + 16961ab commit a07363b

File tree

2 files changed

+25
-18
lines changed

2 files changed

+25
-18
lines changed

tests/conftest.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,13 @@ def pytest_namespace():
3838
'create_signature': create_signature
3939
}
4040

41+
@pytest.fixture
42+
def adapter():
43+
return SlackEventAdapter("SIGNING_SECRET")
4144

4245
@pytest.fixture
4346
def app():
44-
adapter = SlackEventAdapter("SIGNING_SECRET")
45-
app = adapter.server
47+
events_adapter = adapter()
48+
app = events_adapter.server
4649
app.testing = True
4750
return app

tests/test_events.py

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,31 @@
11
import time
22
import pytest
3-
from slackeventsapi import SlackEventAdapter
43

5-
ADAPTER = SlackEventAdapter('SIGNING_SECRET')
4+
def test_event_emission(adapter):
5+
test_event_emission.event_handled = False
66

7-
def test_event_emission(client):
87
# Events should trigger an event
9-
@ADAPTER.on('reaction_added')
10-
def event_handler(event):
8+
@adapter.on('reaction_added')
9+
def event_handler(event_data):
10+
test_event_emission.event_handled = True
11+
12+
event = event_data['event']
1113
assert event["reaction"] == 'grinning'
1214

1315
data = pytest.reaction_event_fixture
1416
timestamp = int(time.time())
15-
signature = pytest.create_signature(ADAPTER.signing_secret, timestamp, data)
17+
signature = pytest.create_signature(adapter.signing_secret, timestamp, data)
1618

17-
res = client.post(
18-
'/slack/events',
19-
data=data,
20-
content_type='application/json',
21-
headers={
22-
'X-Slack-Request-Timestamp': timestamp,
23-
'X-Slack-Signature': signature
24-
}
25-
)
19+
with adapter.server.test_client() as client:
20+
res = client.post(
21+
'/slack/events',
22+
data=data,
23+
content_type='application/json',
24+
headers={
25+
'X-Slack-Request-Timestamp': timestamp,
26+
'X-Slack-Signature': signature
27+
}
28+
)
29+
assert res.status_code == 200
2630

27-
assert res.status_code == 200
31+
assert test_event_emission.event_handled

0 commit comments

Comments
 (0)