Skip to content

Commit 8ff799b

Browse files
committed
Refactor and clean-up Tests
- Spark to Webex Teams name changes. - Remove unnecessary helper functions. - Remove unnecessary classes. - Add license headers.
1 parent bfbbb69 commit 8ff799b

12 files changed

+777
-883
lines changed

tests/api/__init__.py

Lines changed: 86 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# -*- coding: utf-8 -*-
2-
"""WebexTeamsAPI tests.
2+
"""WebexTeamsAPI fixtures and tests.
33
44
Copyright (c) 2016-2018 Cisco and/or its affiliates.
55
@@ -67,92 +67,111 @@ def api():
6767

6868
# Tests
6969

70-
class TestWebexTeamsAPI:
71-
"""Test the WebexTeamsAPI class code."""
70+
# Test creating WebexTeamsAPI objects
7271

73-
# Test creating WebexTeamsAPI objects
72+
@pytest.mark.usefixtures("unset_access_token")
73+
def test_create_without_an_access_token():
74+
with pytest.raises(webexteamssdk.AccessTokenError):
75+
webexteamssdk.WebexTeamsAPI()
7476

75-
@pytest.mark.usefixtures("unset_access_token")
76-
def test_creating_a_new_webexteamssdk_object_without_an_access_token(self):
77-
with pytest.raises(webexteamssdk.AccessTokenError):
78-
webexteamssdk.WebexTeamsAPI()
7977

80-
@pytest.mark.usefixtures("unset_access_token")
81-
def test_creating_a_new_webexteamssdk_object_via_access_token_argument(self, access_token):
82-
connection_object = webexteamssdk.WebexTeamsAPI(access_token=access_token)
83-
assert isinstance(connection_object, webexteamssdk.WebexTeamsAPI)
78+
def test_create_with_access_token_environment_variable():
79+
connection_object = webexteamssdk.WebexTeamsAPI()
80+
assert isinstance(connection_object, webexteamssdk.WebexTeamsAPI)
8481

85-
def test_creating_a_new_webexteamssdk_object_via_environment_varable(self):
86-
connection_object = webexteamssdk.WebexTeamsAPI()
87-
assert isinstance(connection_object, webexteamssdk.WebexTeamsAPI)
8882

89-
def test_default_base_url(self):
90-
connection_object = webexteamssdk.WebexTeamsAPI()
91-
assert connection_object.base_url == DEFAULT_BASE_URL
83+
@pytest.mark.usefixtures("unset_access_token")
84+
def test_create_with_access_token_argument(access_token):
85+
connection_object = webexteamssdk.WebexTeamsAPI(
86+
access_token=access_token
87+
)
88+
assert isinstance(connection_object, webexteamssdk.WebexTeamsAPI)
9289

93-
def test_custom_base_url(self):
94-
custom_url = "https://custom.domain.com/v1/"
95-
connection_object = webexteamssdk.WebexTeamsAPI(base_url=custom_url)
96-
assert connection_object.base_url == custom_url
9790

98-
def test_default_single_request_timeout(self):
99-
connection_object = webexteamssdk.WebexTeamsAPI()
100-
assert connection_object.single_request_timeout == \
101-
DEFAULT_SINGLE_REQUEST_TIMEOUT
91+
def test_default_base_url():
92+
connection_object = webexteamssdk.WebexTeamsAPI()
93+
assert connection_object.base_url == DEFAULT_BASE_URL
10294

103-
def test_custom_single_request_timeout(self):
104-
custom_timeout = 10
105-
connection_object = webexteamssdk.WebexTeamsAPI(
106-
single_request_timeout=custom_timeout
107-
)
108-
assert connection_object.single_request_timeout == custom_timeout
10995

110-
def test_default_wait_on_rate_limit(self):
111-
connection_object = webexteamssdk.WebexTeamsAPI()
112-
assert connection_object.wait_on_rate_limit == \
113-
DEFAULT_WAIT_ON_RATE_LIMIT
96+
def test_custom_base_url():
97+
custom_url = "https://custom.domain.com/v1/"
98+
connection_object = webexteamssdk.WebexTeamsAPI(base_url=custom_url)
99+
assert connection_object.base_url == custom_url
114100

115-
def test_non_default_wait_on_rate_limit(self):
116-
connection_object = webexteamssdk.WebexTeamsAPI(
117-
wait_on_rate_limit=not DEFAULT_WAIT_ON_RATE_LIMIT
118-
)
119-
assert connection_object.wait_on_rate_limit != \
120-
DEFAULT_WAIT_ON_RATE_LIMIT
121101

122-
# Test creation of component API objects
102+
def test_default_single_request_timeout():
103+
connection_object = webexteamssdk.WebexTeamsAPI()
104+
assert connection_object.single_request_timeout == \
105+
DEFAULT_SINGLE_REQUEST_TIMEOUT
123106

124-
def test_access_tokens_api_object_creation(self, api):
125-
assert isinstance(api.access_tokens, AccessTokensAPI)
126107

127-
def test_events_api_object_creation(self, api):
128-
assert isinstance(api.events, EventsAPI)
108+
def test_custom_single_request_timeout():
109+
custom_timeout = 10
110+
connection_object = webexteamssdk.WebexTeamsAPI(
111+
single_request_timeout=custom_timeout
112+
)
113+
assert connection_object.single_request_timeout == custom_timeout
129114

130-
def test_licenses_api_object_creation(self, api):
131-
assert isinstance(api.licenses, LicensesAPI)
132115

133-
def test_memberships_api_object_creation(self, api):
134-
assert isinstance(api.memberships, MembershipsAPI)
116+
def test_default_wait_on_rate_limit():
117+
connection_object = webexteamssdk.WebexTeamsAPI()
118+
assert connection_object.wait_on_rate_limit == \
119+
DEFAULT_WAIT_ON_RATE_LIMIT
135120

136-
def test_messages_api_object_creation(self, api):
137-
assert isinstance(api.messages, MessagesAPI)
138121

139-
def test_organizations_api_object_creation(self, api):
140-
assert isinstance(api.organizations, OrganizationsAPI)
122+
def test_non_default_wait_on_rate_limit():
123+
connection_object = webexteamssdk.WebexTeamsAPI(
124+
wait_on_rate_limit=not DEFAULT_WAIT_ON_RATE_LIMIT
125+
)
126+
assert connection_object.wait_on_rate_limit != \
127+
DEFAULT_WAIT_ON_RATE_LIMIT
141128

142-
def test_people_api_object_creation(self, api):
143-
assert isinstance(api.people, PeopleAPI)
144129

145-
def test_roles_api_object_creation(self, api):
146-
assert isinstance(api.roles, RolesAPI)
130+
# Test creation of component API objects
147131

148-
def test_rooms_api_object_creation(self, api):
149-
assert isinstance(api.rooms, RoomsAPI)
132+
def test_access_tokens_api_object_creation(api):
133+
assert isinstance(api.access_tokens, AccessTokensAPI)
150134

151-
def test_team_memberships_api_object_creation(self, api):
152-
assert isinstance(api.team_memberships, TeamMembershipsAPI)
153135

154-
def test_teams_api_object_creation(self, api):
155-
assert isinstance(api.teams, TeamsAPI)
136+
def test_events_api_object_creation(api):
137+
assert isinstance(api.events, EventsAPI)
156138

157-
def test_webhooks_api_object_creation(self, api):
158-
assert isinstance(api.webhooks, WebhooksAPI)
139+
140+
def test_licenses_api_object_creation(api):
141+
assert isinstance(api.licenses, LicensesAPI)
142+
143+
144+
def test_memberships_api_object_creation(api):
145+
assert isinstance(api.memberships, MembershipsAPI)
146+
147+
148+
def test_messages_api_object_creation(api):
149+
assert isinstance(api.messages, MessagesAPI)
150+
151+
152+
def test_organizations_api_object_creation(api):
153+
assert isinstance(api.organizations, OrganizationsAPI)
154+
155+
156+
def test_people_api_object_creation(api):
157+
assert isinstance(api.people, PeopleAPI)
158+
159+
160+
def test_roles_api_object_creation(api):
161+
assert isinstance(api.roles, RolesAPI)
162+
163+
164+
def test_rooms_api_object_creation(api):
165+
assert isinstance(api.rooms, RoomsAPI)
166+
167+
168+
def test_team_memberships_api_object_creation(api):
169+
assert isinstance(api.team_memberships, TeamMembershipsAPI)
170+
171+
172+
def test_teams_api_object_creation(api):
173+
assert isinstance(api.teams, TeamsAPI)
174+
175+
176+
def test_webhooks_api_object_creation(api):
177+
assert isinstance(api.webhooks, WebhooksAPI)

tests/api/test_events.py

Lines changed: 61 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# -*- coding: utf-8 -*-
2-
"""pytest Messages functions, fixtures and tests.
2+
"""WebexTeamsAPI Events API fixtures and tests.
33
44
Copyright (c) 2016-2018 Cisco and/or its affiliates.
55
@@ -39,7 +39,8 @@ def are_valid_events(iterable):
3939
return all([is_valid_event(obj) for obj in iterable])
4040

4141

42-
# pytest Fixtures
42+
# Fixtures
43+
4344
@pytest.fixture(scope="session")
4445
def events(api, group_room_messages, direct_messages):
4546
five_events = list(api.events.list()[:5])
@@ -49,56 +50,61 @@ def events(api, group_room_messages, direct_messages):
4950

5051
# Tests
5152

52-
class TestEventsAPI(object):
53-
"""Test EventsAPI methods."""
54-
55-
def test_list_events(self, api, events):
56-
assert are_valid_events(events)
57-
58-
def test_list_message_events(self, api, events):
59-
message_events = list(api.events.list(resource="messages")[:5])
60-
assert are_valid_events(message_events)
61-
assert all([event.resource == "messages" for event in message_events])
62-
63-
def test_list_membership_events(self, api, events):
64-
membership_events = list(api.events.list(resource="memberships")[:5])
65-
assert are_valid_events(membership_events)
66-
assert all(
67-
[event.resource == "memberships" for event in membership_events]
68-
)
69-
70-
def test_list_events_by_type(self, api, events):
71-
created_events = list(api.events.list(type="created")[:5])
72-
assert are_valid_events(created_events)
73-
assert all([event.type == "created" for event in created_events])
74-
75-
def test_list_events_by_actor_id(selfs, api, events):
76-
actor_id = events[0].actorId
77-
actor_events = list(api.events.list(actorId=actor_id)[:5])
78-
assert are_valid_events(actor_events)
79-
assert all([event.actorId == actor_id for event in actor_events])
80-
81-
def test_list_events_from(selfs, api, events):
82-
datetime_string = min(event.created for event in events)
83-
from_events = list(api.events.list(_from=datetime_string)[:5])
84-
assert are_valid_events(from_events)
85-
86-
def test_list_events_to(selfs, api, events):
87-
datetime_string = max(event.created for event in events)
88-
to_events = list(api.events.list(to=datetime_string)[:5])
89-
assert are_valid_events(to_events)
90-
91-
def test_list_events_with_paging(self, api, events):
92-
page_size = 1
93-
pages = 3
94-
num_events = pages * page_size
95-
assert len(events) >= num_events
96-
events_gen = api.events.list(max=page_size)
97-
events_list = list(itertools.islice(events_gen, num_events))
98-
assert len(events_list) == num_events
99-
assert are_valid_events(events_list)
100-
101-
def test_get_event_by_id(self, api, events):
102-
event_id = events[0].id
103-
event = api.events.get(event_id)
104-
assert is_valid_event(event)
53+
def test_list_events(api, events):
54+
assert are_valid_events(events)
55+
56+
57+
def test_list_message_events(api, events):
58+
message_events = list(api.events.list(resource="messages")[:5])
59+
assert are_valid_events(message_events)
60+
assert all([event.resource == "messages" for event in message_events])
61+
62+
63+
def test_list_membership_events(api, events):
64+
membership_events = list(api.events.list(resource="memberships")[:5])
65+
assert are_valid_events(membership_events)
66+
assert all(
67+
[event.resource == "memberships" for event in membership_events]
68+
)
69+
70+
71+
def test_list_events_by_type(api, events):
72+
created_events = list(api.events.list(type="created")[:5])
73+
assert are_valid_events(created_events)
74+
assert all([event.type == "created" for event in created_events])
75+
76+
77+
def test_list_events_by_actor_id(api, events):
78+
actor_id = events[0].actorId
79+
actor_events = list(api.events.list(actorId=actor_id)[:5])
80+
assert are_valid_events(actor_events)
81+
assert all([event.actorId == actor_id for event in actor_events])
82+
83+
84+
def test_list_events_from(api, events):
85+
datetime_string = min(event.created for event in events)
86+
from_events = list(api.events.list(_from=datetime_string)[:5])
87+
assert are_valid_events(from_events)
88+
89+
90+
def test_list_events_to(api, events):
91+
datetime_string = max(event.created for event in events)
92+
to_events = list(api.events.list(to=datetime_string)[:5])
93+
assert are_valid_events(to_events)
94+
95+
96+
def test_list_events_with_paging(api, events):
97+
page_size = 1
98+
pages = 3
99+
num_events = pages * page_size
100+
assert len(events) >= num_events
101+
events_gen = api.events.list(max=page_size)
102+
events_list = list(itertools.islice(events_gen, num_events))
103+
assert len(events_list) == num_events
104+
assert are_valid_events(events_list)
105+
106+
107+
def test_get_event_by_id(api, events):
108+
event_id = events[0].id
109+
event = api.events.get(event_id)
110+
assert is_valid_event(event)

tests/api/test_licenses.py

Lines changed: 11 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# -*- coding: utf-8 -*-
2-
"""pytest Licenses API wrapper tests and fixtures.
2+
"""WebexTeamsAPI Licenses API fixtures and tests.
33
44
Copyright (c) 2016-2018 Cisco and/or its affiliates.
55
@@ -29,14 +29,6 @@
2929

3030
# Helper Functions
3131

32-
def get_list_of_licenses(api, orgId=None, max=None):
33-
return api.licenses.list(orgId=orgId, max=max)
34-
35-
36-
def get_license_by_id(api, licenseId):
37-
return api.licenses.get(licenseId)
38-
39-
4032
def is_valid_license(obj):
4133
return isinstance(obj, webexteamssdk.License) and obj.id is not None
4234

@@ -45,11 +37,11 @@ def are_valid_licenses(iterable):
4537
return all([is_valid_license(obj) for obj in iterable])
4638

4739

48-
# pytest Fixtures
40+
# Fixtures
4941

5042
@pytest.fixture(scope="session")
51-
def licenses_list(api):
52-
return list(get_list_of_licenses(api))
43+
def licenses_list(api, me):
44+
return list(api.licenses.list(orgId=me.orgId))
5345

5446

5547
@pytest.fixture(scope="session")
@@ -59,24 +51,12 @@ def licenses_dict(licenses_list):
5951

6052
# Tests
6153

62-
class TestLicensesAPI(object):
63-
"""Test LicensesAPI methods."""
64-
65-
def test_list_licenses(self, licenses_list):
66-
assert are_valid_licenses(licenses_list)
67-
68-
def test_list_licenses_with_paging(self, api):
69-
paging_generator = get_list_of_licenses(api, max=1)
70-
licenses = list(paging_generator)
71-
assert len(licenses) > 1
72-
assert are_valid_licenses(licenses)
54+
def test_list_licenses(licenses_list):
55+
assert are_valid_licenses(licenses_list)
7356

74-
def test_get_licenses_for_organization(self, api, me):
75-
licenses = list(get_list_of_licenses(api, orgId=me.orgId))
76-
assert are_valid_licenses(licenses)
7757

78-
def test_get_license_by_id(self, api, licenses_list):
79-
assert len(licenses_list) >= 1
80-
license_id = licenses_list[0].id
81-
license = get_license_by_id(api, licenseId=license_id)
82-
assert is_valid_license(license)
58+
def test_get_license_details(api, licenses_list):
59+
assert len(licenses_list) >= 1
60+
license_id = licenses_list[0].id
61+
details = api.licenses.get(license_id)
62+
assert is_valid_license(details)

0 commit comments

Comments
 (0)