Skip to content

Commit 04b587b

Browse files
committed
Initial EventsAPI test suite
Create a test suite for the new EventsAPI.
1 parent 936ca46 commit 04b587b

File tree

2 files changed

+91
-0
lines changed

2 files changed

+91
-0
lines changed

tests/api/test_events.py

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# -*- coding: utf-8 -*-
2+
"""pytest Messages functions, fixtures and tests."""
3+
4+
5+
import itertools
6+
7+
import pytest
8+
9+
import ciscosparkapi
10+
11+
12+
__author__ = "Chris Lunsford"
13+
__author_email__ = "[email protected]"
14+
__copyright__ = "Copyright (c) 2016-2018 Cisco and/or its affiliates."
15+
__license__ = "MIT"
16+
17+
18+
# Helper Functions
19+
20+
def is_valid_event(obj):
21+
return isinstance(obj, ciscosparkapi.Event) and obj.id is not None
22+
23+
24+
def are_valid_events(iterable):
25+
return all([is_valid_event(obj) for obj in iterable])
26+
27+
28+
# pytest Fixtures
29+
@pytest.fixture(scope="session")
30+
def events(api, group_room_messages, direct_messages):
31+
five_events = list(api.events.list()[:5])
32+
assert len(five_events) == 5
33+
return five_events
34+
35+
36+
# Tests
37+
38+
class TestEventsAPI(object):
39+
"""Test EventsAPI methods."""
40+
41+
def test_list_events(self, api, events):
42+
assert are_valid_events(events)
43+
44+
def test_list_message_events(self, api, events):
45+
message_events = list(api.events.list(resource="messages")[:5])
46+
assert are_valid_events(message_events)
47+
assert all([event.resource == "messages" for event in message_events])
48+
49+
def test_list_membership_events(self, api, events):
50+
membership_events = list(api.events.list(resource="memberships")[:5])
51+
assert are_valid_events(membership_events)
52+
assert all(
53+
[event.resource == "memberships" for event in membership_events]
54+
)
55+
56+
def test_list_events_by_type(self, api, events):
57+
created_events = list(api.events.list(type="created")[:5])
58+
assert are_valid_events(created_events)
59+
assert all([event.type == "created" for event in created_events])
60+
61+
def test_list_events_by_actor_id(selfs, api, events):
62+
actor_id = events[0].actorId
63+
actor_events = list(api.events.list(actorId=actor_id)[:5])
64+
assert are_valid_events(actor_events)
65+
assert all([event.actorId == actor_id for event in actor_events])
66+
67+
def test_list_events_from(selfs, api, events):
68+
datetime_string = min(event.created for event in events)
69+
from_events = list(api.events.list(_from=datetime_string)[:5])
70+
assert are_valid_events(from_events)
71+
72+
def test_list_events_to(selfs, api, events):
73+
datetime_string = max(event.created for event in events)
74+
to_events = list(api.events.list(to=datetime_string)[:5])
75+
assert are_valid_events(to_events)
76+
77+
def test_list_events_with_paging(self, api, events):
78+
page_size = 1
79+
pages = 3
80+
num_events = pages * page_size
81+
assert len(events) >= num_events
82+
events_gen = api.events.list(max=page_size)
83+
events_list = list(itertools.islice(events_gen, num_events))
84+
assert len(events_list) == num_events
85+
assert are_valid_events(events_list)
86+
87+
def test_get_event_by_id(self, api, events):
88+
event_id = events[0].id
89+
event = api.events.get(event_id)
90+
assert is_valid_event(event)

tests/conftest.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
'tests.api.test_rooms',
3030
'tests.api.test_teammemberships',
3131
'tests.api.test_teams',
32+
"tests.api.test_events",
3233
]
3334

3435

0 commit comments

Comments
 (0)