17
17
18
18
# Helper Functions
19
19
20
- def is_valid_person (obj ):
21
- return isinstance (obj , ciscosparkapi .Person ) and obj .id is not None
22
-
23
-
24
- def are_valid_people (iterable ):
25
- return all ([is_valid_person (obj ) for obj in iterable ])
20
+ def create_person (api , emails , ** person_attributes ):
21
+ return api .people .create (emails , ** person_attributes )
26
22
27
23
28
24
def get_person_by_id (api , id ):
@@ -44,10 +40,6 @@ def get_person_by_email(api, email):
44
40
return None
45
41
46
42
47
- def create_person (api , emails , ** person_attributes ):
48
- return api .people .create (emails , ** person_attributes )
49
-
50
-
51
43
def update_person (api , person , ** person_attributes ):
52
44
# Get a copy of the person's current attributes
53
45
new_attributes = person .json_data
@@ -63,14 +55,31 @@ def delete_person(api, person):
63
55
api .people .delete (person .id )
64
56
65
57
58
+ def is_valid_person (obj ):
59
+ return isinstance (obj , ciscosparkapi .Person ) and obj .id is not None
60
+
61
+
62
+ def are_valid_people (iterable ):
63
+ return all ([is_valid_person (obj ) for obj in iterable ])
64
+
65
+
66
+ def person_exists (api , person ):
67
+ try :
68
+ get_person_by_id (api , person .id )
69
+ except ciscosparkapi .SparkApiError :
70
+ return False
71
+ else :
72
+ return True
73
+
74
+
66
75
# pytest Fixtures
67
76
68
77
@pytest .fixture (scope = "session" )
69
78
def me (api ):
70
79
return api .people .me ()
71
80
72
81
@pytest .fixture (scope = "session" )
73
- def get_new_test_person (api , get_new_email_address , me , licenses_dict ):
82
+ def get_test_person (api , get_new_email_address , me , licenses_dict ):
74
83
75
84
def inner_function ():
76
85
person_email = get_new_email_address ()
@@ -95,10 +104,10 @@ def inner_function():
95
104
class PeopleManager (object ):
96
105
"""Creates, tracks and manages test accounts 'people' used by the tests."""
97
106
98
- def __init__ (self , api , get_new_test_person ):
107
+ def __init__ (self , api , get_test_person ):
99
108
super (PeopleManager , self ).__init__ ()
100
109
self ._api = api
101
- self ._get_new_test_person = get_new_test_person
110
+ self ._get_new_test_person = get_test_person
102
111
self .test_people = {}
103
112
104
113
def __getitem__ (self , item ):
@@ -133,17 +142,37 @@ def __del__(self):
133
142
134
143
135
144
@pytest .fixture (scope = "session" )
136
- def test_people (api , get_new_test_person ):
137
- test_people = PeopleManager (api , get_new_test_person )
145
+ def test_people (api , get_test_person ):
146
+ test_people = PeopleManager (api , get_test_person )
138
147
yield test_people
139
148
del test_people
140
149
141
150
142
151
@pytest .fixture ()
143
- def temp_person (api , get_new_test_person ):
144
- person = get_new_test_person ()
152
+ def temp_person (api , get_random_email_address , me , licenses_dict ):
153
+ # Get an e-mail address not currently used on Cisco Spark
154
+ person_email = None
155
+ person = True
156
+ while person :
157
+ person_email = get_random_email_address ()
158
+ person = get_person_by_email (api , person_email )
159
+
160
+ # Create the person
161
+ person = create_person (
162
+ api ,
163
+ emails = [person_email ],
164
+ displayName = "ciscosparkapi" ,
165
+ firstName = "ciscosparkapi" ,
166
+ lastName = "ciscosparkapi" ,
167
+ orgId = me .orgId ,
168
+ licenses = [licenses_dict ["Messaging" ].id ],
169
+ )
170
+ assert is_valid_person (person )
171
+
145
172
yield person
146
- delete_person (api , person )
173
+
174
+ if person_exists (api , person ):
175
+ delete_person (api , person )
147
176
148
177
149
178
@pytest .fixture ()
0 commit comments