17
17
Examples for CaseManagementV1
18
18
"""
19
19
20
+ import io
20
21
import os
21
22
import pytest
22
23
from ibm_cloud_sdk_core import ApiException , read_external_sources
23
24
from ibm_platform_services .case_management_v1 import *
24
25
25
26
# Config file name
26
- config_file = 'case_management_v1 .env'
27
+ config_file = 'case_management .env'
27
28
28
29
case_management_service = None
29
30
30
31
config = None
31
32
33
+ case_number = None
34
+ attachment_id = None
35
+ resource_crn = None
36
+
32
37
33
38
##############################################################################
34
39
# Start of Examples for Service: CaseManagementV1
@@ -57,6 +62,9 @@ def setup_class(cls):
57
62
global config
58
63
config = read_external_sources (CaseManagementV1 .DEFAULT_SERVICE_NAME )
59
64
65
+ global resource_crn
66
+ resource_crn = config ['RESOURCE_CRN' ]
67
+
60
68
print ('Setup complete.' )
61
69
62
70
needscredentials = pytest .mark .skipif (
@@ -71,16 +79,33 @@ def test_create_case_example(self):
71
79
try :
72
80
# begin-createCase
73
81
82
+ offering_type = OfferingType (
83
+ group = 'crn_service_name' ,
84
+ key = 'cloud-object-storage'
85
+ )
86
+ offering_payload = Offering (
87
+ name = 'Cloud Object Storage' ,
88
+ type = offering_type
89
+ )
90
+
74
91
case = case_management_service .create_case (
75
92
type = 'technical' ,
76
- subject = 'testString' ,
77
- description = 'testString'
93
+ subject = 'Example technical case' ,
94
+ description = 'This is an example case description. This is where the problem would be described.' ,
95
+ offering = offering_payload ,
96
+ severity = 4 ,
78
97
).get_result ()
79
98
80
99
print (json .dumps (case , indent = 2 ))
81
100
82
101
# end-createCase
83
102
103
+ assert case is not None
104
+ assert case ['number' ] is not None
105
+
106
+ global case_number
107
+ case_number = case ['number' ]
108
+
84
109
except ApiException as e :
85
110
pytest .fail (str (e ))
86
111
@@ -89,11 +114,21 @@ def test_get_case_example(self):
89
114
"""
90
115
get_case request example
91
116
"""
117
+ assert case_number is not None
118
+
92
119
try :
93
120
# begin-getCase
94
121
122
+ fields_to_return = [
123
+ GetCaseEnums .Fields .DESCRIPTION ,
124
+ GetCaseEnums .Fields .STATUS ,
125
+ GetCaseEnums .Fields .SEVERITY ,
126
+ GetCaseEnums .Fields .CREATED_BY ,
127
+ ]
128
+
95
129
case = case_management_service .get_case (
96
- case_number = 'testString'
130
+ case_number = case_number ,
131
+ fields = fields_to_return
97
132
).get_result ()
98
133
99
134
print (json .dumps (case , indent = 2 ))
@@ -111,7 +146,12 @@ def test_get_cases_example(self):
111
146
try :
112
147
# begin-getCases
113
148
114
- case_list = case_management_service .get_cases ().get_result ()
149
+ case_list = case_management_service .get_cases (
150
+ offset = 0 ,
151
+ limit = 100 ,
152
+ search = 'blocker' ,
153
+ sort = GetCasesEnums .Fields .UPDATED_AT ,
154
+ ).get_result ()
115
155
116
156
print (json .dumps (case_list , indent = 2 ))
117
157
@@ -125,12 +165,14 @@ def test_add_comment_example(self):
125
165
"""
126
166
add_comment request example
127
167
"""
168
+ assert case_number is not None
169
+
128
170
try :
129
171
# begin-addComment
130
172
131
173
comment = case_management_service .add_comment (
132
- case_number = 'testString' ,
133
- comment = 'This is a test comment'
174
+ case_number = case_number ,
175
+ comment = 'This is an example comment. '
134
176
).get_result ()
135
177
136
178
print (json .dumps (comment , indent = 2 ))
@@ -145,11 +187,18 @@ def test_add_watchlist_example(self):
145
187
"""
146
188
add_watchlist request example
147
189
"""
190
+ assert case_number is not None
191
+
148
192
try :
149
193
# begin-addWatchlist
150
194
195
+ watchlist_users = [
196
+ User (
realm = 'IBMid' ,
user_id = '[email protected] ' )
197
+ ]
198
+
151
199
watchlist_add_response = case_management_service .add_watchlist (
152
- case_number = 'testString' ,
200
+ case_number = case_number ,
201
+ watchlist = watchlist_users ,
153
202
).get_result ()
154
203
155
204
print (json .dumps (watchlist_add_response , indent = 2 ))
@@ -164,11 +213,18 @@ def test_remove_watchlist_example(self):
164
213
"""
165
214
remove_watchlist request example
166
215
"""
216
+ assert case_number is not None
217
+
167
218
try :
168
219
# begin-removeWatchlist
169
220
221
+ watchlist_users = [
222
+ User (
realm = 'IBMid' ,
user_id = '[email protected] ' )
223
+ ]
224
+
170
225
watchlist = case_management_service .remove_watchlist (
171
- case_number = 'testString' ,
226
+ case_number = case_number ,
227
+ watchlist = watchlist_users ,
172
228
).get_result ()
173
229
174
230
print (json .dumps (watchlist , indent = 2 ))
@@ -183,11 +239,16 @@ def test_add_resource_example(self):
183
239
"""
184
240
add_resource request example
185
241
"""
242
+ assert case_number is not None
243
+ assert resource_crn is not None
244
+
186
245
try :
187
246
# begin-addResource
188
247
189
248
resource = case_management_service .add_resource (
190
- case_number = 'testString' ,
249
+ case_number = case_number ,
250
+ crn = resource_crn ,
251
+ note = "This resource is the service that is having the problem." ,
191
252
).get_result ()
192
253
193
254
print (json .dumps (resource , indent = 2 ))
@@ -202,22 +263,36 @@ def test_upload_file_example(self):
202
263
"""
203
264
upload_file request example
204
265
"""
266
+ assert case_number is not None
267
+
205
268
try :
206
269
# begin-uploadFile
207
270
271
+ example_file_content = b'This is the content of the file to upload.'
272
+
208
273
file_with_metadata_model = {
209
- 'data' : io .BytesIO (b'This is a mock file.' ).getvalue ()
274
+ 'data' : io .BytesIO (example_file_content ).getvalue (),
275
+ 'filename' : 'example.log' ,
276
+ 'content_type' : 'application/octet-stream' ,
210
277
}
211
278
279
+ files_to_upload = [file_with_metadata_model ]
280
+
212
281
attachment = case_management_service .upload_file (
213
- case_number = 'testString' ,
214
- file = [ file_with_metadata_model ]
282
+ case_number = case_number ,
283
+ file = files_to_upload ,
215
284
).get_result ()
216
285
217
286
print (json .dumps (attachment , indent = 2 ))
218
287
219
288
# end-uploadFile
220
289
290
+ assert attachment is not None
291
+ assert attachment ['id' ] is not None
292
+
293
+ global attachment_id
294
+ attachment_id = attachment ['id' ]
295
+
221
296
except ApiException as e :
222
297
pytest .fail (str (e ))
223
298
@@ -226,16 +301,21 @@ def test_download_file_example(self):
226
301
"""
227
302
download_file request example
228
303
"""
304
+ assert case_number is not None
305
+ assert attachment_id is not None
306
+
229
307
try :
230
308
# begin-downloadFile
231
309
232
- result = case_management_service .download_file (
233
- case_number = 'testString' ,
234
- file_id = 'testString'
235
- ). get_result ()
310
+ response = case_management_service .download_file (
311
+ case_number = case_number ,
312
+ file_id = attachment_id ,
313
+ )
236
314
237
- with open ('/tmp/result.out' , 'wb' ) as fp :
238
- fp .write (result )
315
+ file = response .get_result ()
316
+
317
+ print ('Attachment content-type:' , response .get_headers ()['content-type' ])
318
+ print ('Attachment contents:' , file )
239
319
240
320
# end-downloadFile
241
321
@@ -247,12 +327,15 @@ def test_delete_file_example(self):
247
327
"""
248
328
delete_file request example
249
329
"""
330
+ assert case_number is not None
331
+ assert attachment_id is not None
332
+
250
333
try :
251
334
# begin-deleteFile
252
335
253
336
attachment_list = case_management_service .delete_file (
254
- case_number = 'testString' ,
255
- file_id = 'testString'
337
+ case_number = case_number ,
338
+ file_id = attachment_id
256
339
).get_result ()
257
340
258
341
print (json .dumps (attachment_list , indent = 2 ))
@@ -267,17 +350,19 @@ def test_update_case_status_example(self):
267
350
"""
268
351
update_case_status request example
269
352
"""
353
+ assert case_number is not None
354
+
270
355
try :
271
356
# begin-updateCaseStatus
272
357
273
358
status_payload_model = {
274
359
'action' : 'resolve' ,
275
- 'comment' : 'It was actually a mistake ' ,
276
- 'resolution_code' : 1
360
+ 'comment' : 'The problem has been resolved. ' ,
361
+ 'resolution_code' : 1 ,
277
362
}
278
363
279
364
case = case_management_service .update_case_status (
280
- case_number = 'testString' ,
365
+ case_number = case_number ,
281
366
status_payload = status_payload_model
282
367
).get_result ()
283
368
0 commit comments