3
3
"""pytest Team functions, fixtures and tests."""
4
4
5
5
6
+ import itertools
7
+
6
8
import pytest
7
9
8
10
import ciscosparkapi
@@ -15,14 +17,105 @@ def create_team(api, name):
15
17
return api .teams .create (name )
16
18
17
19
20
+ def get_team_details_by_id (self , api , team_id ):
21
+ team = api .teams .get (team_id )
22
+ return team
23
+
24
+
18
25
def delete_team (api , team ):
19
26
api .teams .delete (team .id )
20
27
21
28
29
+ def is_valid_team (obj ):
30
+ return isinstance (obj , ciscosparkapi .Team ) and obj .id is not None
31
+
32
+
33
+ def are_valid_teams (iterable ):
34
+ return all ([is_valid_team (obj ) for obj in iterable ])
35
+
36
+
37
+ def team_exists (api , team ):
38
+ try :
39
+ get_team_details_by_id (api , team .id )
40
+ except ciscosparkapi .SparkApiError :
41
+ return False
42
+ else :
43
+ return True
44
+
45
+
46
+
22
47
# pytest Fixtures
23
48
24
49
@pytest .fixture (scope = "session" )
25
50
def team (api ):
26
51
team = create_team (api , create_string ("Team" ))
27
52
yield team
28
53
delete_team (api , team )
54
+
55
+
56
+ @pytest .fixture (scope = "session" )
57
+ def teams_list (api , team ):
58
+ return list (api .teams .list ())
59
+
60
+
61
+ @pytest .fixture
62
+ def temp_team (api ):
63
+ team = create_team (api , create_string ("Team" ))
64
+
65
+ yield team
66
+
67
+ if team_exists (api , team ):
68
+ delete_team (api , team )
69
+
70
+
71
+ @pytest .fixture
72
+ def add_teams (api ):
73
+ teams = []
74
+
75
+ def inner (num_teams ):
76
+ for i in range (num_teams ):
77
+ teams .append (create_team (api , create_string ("Additional Team" )))
78
+ return teams
79
+
80
+ yield inner
81
+
82
+ for team in teams :
83
+ delete_team (api , team )
84
+
85
+
86
+ # Tests
87
+
88
+ class TestTeamsAPI (object ):
89
+ """Test TeamsAPI methods."""
90
+
91
+ def test_create_team (self , team ):
92
+ assert is_valid_team (team )
93
+
94
+ def test_get_team_details (self , api , team ):
95
+ team = get_team_details_by_id (team .id )
96
+ assert is_valid_team (team )
97
+
98
+ def test_update_team_name (self , api , team ):
99
+ new_name = create_string ("Updated Team" )
100
+ team = api .teams .update (team .id , name = new_name )
101
+ assert is_valid_team (team )
102
+ assert team .title == new_name
103
+
104
+ def test_delete_team (self , api , temp_team ):
105
+ api .teams .delete (temp_team .id )
106
+ assert not team_exists (api , temp_team )
107
+
108
+ def test_list_teams (self , api , teams_list ):
109
+ assert len (teams_list ) > 0
110
+ assert are_valid_teams (teams_list )
111
+
112
+ def test_list_teams_with_paging (self , api , teams_list , add_teams ):
113
+ page_size = 1
114
+ pages = 3
115
+ num_teams = pages * page_size
116
+ if len (teams_list ) < num_teams :
117
+ add_teams (num_teams - len (teams_list ))
118
+ teams = api .teams .list (max = page_size )
119
+ teams_list = list (itertools .islice (teams , num_teams ))
120
+ assert len (teams_list ) == num_teams
121
+ assert are_valid_teams (teams_list )
0 commit comments