1# -------------------------------------------------------------------------------------------- 2# Copyright (c) Microsoft Corporation. All rights reserved. 3# Licensed under the MIT License. See License.txt in the project root for license information. 4# -------------------------------------------------------------------------------------------- 5# Generated file, DO NOT EDIT 6# Changes may cause incorrect behavior and will be lost if the code is regenerated. 7# -------------------------------------------------------------------------------------------- 8 9from msrest import Serializer, Deserializer 10from ...vss_client import VssClient 11from . import models 12 13 14class TestClient(VssClient): 15 """Test 16 :param str base_url: Service URL 17 :param Authentication creds: Authenticated credentials. 18 """ 19 20 def __init__(self, base_url=None, creds=None): 21 super(TestClient, self).__init__(base_url, creds) 22 client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} 23 self._serialize = Serializer(client_models) 24 self._deserialize = Deserializer(client_models) 25 26 resource_area_identifier = 'c2aa639c-3ccc-4740-b3b6-ce2a1e1d984e' 27 28 def get_action_results(self, project, run_id, test_case_result_id, iteration_id, action_path=None): 29 """GetActionResults. 30 :param str project: Project ID or project name 31 :param int run_id: 32 :param int test_case_result_id: 33 :param int iteration_id: 34 :param str action_path: 35 :rtype: [TestActionResultModel] 36 """ 37 route_values = {} 38 if project is not None: 39 route_values['project'] = self._serialize.url('project', project, 'str') 40 if run_id is not None: 41 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 42 if test_case_result_id is not None: 43 route_values['testCaseResultId'] = self._serialize.url('test_case_result_id', test_case_result_id, 'int') 44 if iteration_id is not None: 45 route_values['iterationId'] = self._serialize.url('iteration_id', iteration_id, 'int') 46 if action_path is not None: 47 route_values['actionPath'] = self._serialize.url('action_path', action_path, 'str') 48 response = self._send(http_method='GET', 49 location_id='eaf40c31-ff84-4062-aafd-d5664be11a37', 50 version='4.1', 51 route_values=route_values) 52 return self._deserialize('[TestActionResultModel]', self._unwrap_collection(response)) 53 54 def create_test_iteration_result_attachment(self, attachment_request_model, project, run_id, test_case_result_id, iteration_id, action_path=None): 55 """CreateTestIterationResultAttachment. 56 [Preview API] 57 :param :class:`<TestAttachmentRequestModel> <test.v4_1.models.TestAttachmentRequestModel>` attachment_request_model: 58 :param str project: Project ID or project name 59 :param int run_id: 60 :param int test_case_result_id: 61 :param int iteration_id: 62 :param str action_path: 63 :rtype: :class:`<TestAttachmentReference> <test.v4_1.models.TestAttachmentReference>` 64 """ 65 route_values = {} 66 if project is not None: 67 route_values['project'] = self._serialize.url('project', project, 'str') 68 if run_id is not None: 69 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 70 if test_case_result_id is not None: 71 route_values['testCaseResultId'] = self._serialize.url('test_case_result_id', test_case_result_id, 'int') 72 query_parameters = {} 73 if iteration_id is not None: 74 query_parameters['iterationId'] = self._serialize.query('iteration_id', iteration_id, 'int') 75 if action_path is not None: 76 query_parameters['actionPath'] = self._serialize.query('action_path', action_path, 'str') 77 content = self._serialize.body(attachment_request_model, 'TestAttachmentRequestModel') 78 response = self._send(http_method='POST', 79 location_id='2bffebe9-2f0f-4639-9af8-56129e9fed2d', 80 version='4.1-preview.1', 81 route_values=route_values, 82 query_parameters=query_parameters, 83 content=content) 84 return self._deserialize('TestAttachmentReference', response) 85 86 def create_test_result_attachment(self, attachment_request_model, project, run_id, test_case_result_id): 87 """CreateTestResultAttachment. 88 [Preview API] 89 :param :class:`<TestAttachmentRequestModel> <test.v4_1.models.TestAttachmentRequestModel>` attachment_request_model: 90 :param str project: Project ID or project name 91 :param int run_id: 92 :param int test_case_result_id: 93 :rtype: :class:`<TestAttachmentReference> <test.v4_1.models.TestAttachmentReference>` 94 """ 95 route_values = {} 96 if project is not None: 97 route_values['project'] = self._serialize.url('project', project, 'str') 98 if run_id is not None: 99 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 100 if test_case_result_id is not None: 101 route_values['testCaseResultId'] = self._serialize.url('test_case_result_id', test_case_result_id, 'int') 102 content = self._serialize.body(attachment_request_model, 'TestAttachmentRequestModel') 103 response = self._send(http_method='POST', 104 location_id='2bffebe9-2f0f-4639-9af8-56129e9fed2d', 105 version='4.1-preview.1', 106 route_values=route_values, 107 content=content) 108 return self._deserialize('TestAttachmentReference', response) 109 110 def get_test_result_attachment_content(self, project, run_id, test_case_result_id, attachment_id, **kwargs): 111 """GetTestResultAttachmentContent. 112 [Preview API] Returns a test result attachment 113 :param str project: Project ID or project name 114 :param int run_id: 115 :param int test_case_result_id: 116 :param int attachment_id: 117 :rtype: object 118 """ 119 route_values = {} 120 if project is not None: 121 route_values['project'] = self._serialize.url('project', project, 'str') 122 if run_id is not None: 123 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 124 if test_case_result_id is not None: 125 route_values['testCaseResultId'] = self._serialize.url('test_case_result_id', test_case_result_id, 'int') 126 if attachment_id is not None: 127 route_values['attachmentId'] = self._serialize.url('attachment_id', attachment_id, 'int') 128 response = self._send(http_method='GET', 129 location_id='2bffebe9-2f0f-4639-9af8-56129e9fed2d', 130 version='4.1-preview.1', 131 route_values=route_values, 132 accept_media_type='application/octet-stream') 133 if "callback" in kwargs: 134 callback = kwargs["callback"] 135 else: 136 callback = None 137 return self._client.stream_download(response, callback=callback) 138 139 def get_test_result_attachments(self, project, run_id, test_case_result_id): 140 """GetTestResultAttachments. 141 [Preview API] Returns attachment references for test result. 142 :param str project: Project ID or project name 143 :param int run_id: 144 :param int test_case_result_id: 145 :rtype: [TestAttachment] 146 """ 147 route_values = {} 148 if project is not None: 149 route_values['project'] = self._serialize.url('project', project, 'str') 150 if run_id is not None: 151 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 152 if test_case_result_id is not None: 153 route_values['testCaseResultId'] = self._serialize.url('test_case_result_id', test_case_result_id, 'int') 154 response = self._send(http_method='GET', 155 location_id='2bffebe9-2f0f-4639-9af8-56129e9fed2d', 156 version='4.1-preview.1', 157 route_values=route_values) 158 return self._deserialize('[TestAttachment]', self._unwrap_collection(response)) 159 160 def get_test_result_attachment_zip(self, project, run_id, test_case_result_id, attachment_id, **kwargs): 161 """GetTestResultAttachmentZip. 162 [Preview API] Returns a test result attachment 163 :param str project: Project ID or project name 164 :param int run_id: 165 :param int test_case_result_id: 166 :param int attachment_id: 167 :rtype: object 168 """ 169 route_values = {} 170 if project is not None: 171 route_values['project'] = self._serialize.url('project', project, 'str') 172 if run_id is not None: 173 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 174 if test_case_result_id is not None: 175 route_values['testCaseResultId'] = self._serialize.url('test_case_result_id', test_case_result_id, 'int') 176 if attachment_id is not None: 177 route_values['attachmentId'] = self._serialize.url('attachment_id', attachment_id, 'int') 178 response = self._send(http_method='GET', 179 location_id='2bffebe9-2f0f-4639-9af8-56129e9fed2d', 180 version='4.1-preview.1', 181 route_values=route_values, 182 accept_media_type='application/zip') 183 if "callback" in kwargs: 184 callback = kwargs["callback"] 185 else: 186 callback = None 187 return self._client.stream_download(response, callback=callback) 188 189 def create_test_run_attachment(self, attachment_request_model, project, run_id): 190 """CreateTestRunAttachment. 191 [Preview API] 192 :param :class:`<TestAttachmentRequestModel> <test.v4_1.models.TestAttachmentRequestModel>` attachment_request_model: 193 :param str project: Project ID or project name 194 :param int run_id: 195 :rtype: :class:`<TestAttachmentReference> <test.v4_1.models.TestAttachmentReference>` 196 """ 197 route_values = {} 198 if project is not None: 199 route_values['project'] = self._serialize.url('project', project, 'str') 200 if run_id is not None: 201 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 202 content = self._serialize.body(attachment_request_model, 'TestAttachmentRequestModel') 203 response = self._send(http_method='POST', 204 location_id='4f004af4-a507-489c-9b13-cb62060beb11', 205 version='4.1-preview.1', 206 route_values=route_values, 207 content=content) 208 return self._deserialize('TestAttachmentReference', response) 209 210 def get_test_run_attachment_content(self, project, run_id, attachment_id, **kwargs): 211 """GetTestRunAttachmentContent. 212 [Preview API] Returns a test run attachment 213 :param str project: Project ID or project name 214 :param int run_id: 215 :param int attachment_id: 216 :rtype: object 217 """ 218 route_values = {} 219 if project is not None: 220 route_values['project'] = self._serialize.url('project', project, 'str') 221 if run_id is not None: 222 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 223 if attachment_id is not None: 224 route_values['attachmentId'] = self._serialize.url('attachment_id', attachment_id, 'int') 225 response = self._send(http_method='GET', 226 location_id='4f004af4-a507-489c-9b13-cb62060beb11', 227 version='4.1-preview.1', 228 route_values=route_values, 229 accept_media_type='application/octet-stream') 230 if "callback" in kwargs: 231 callback = kwargs["callback"] 232 else: 233 callback = None 234 return self._client.stream_download(response, callback=callback) 235 236 def get_test_run_attachments(self, project, run_id): 237 """GetTestRunAttachments. 238 [Preview API] Returns attachment references for test run. 239 :param str project: Project ID or project name 240 :param int run_id: 241 :rtype: [TestAttachment] 242 """ 243 route_values = {} 244 if project is not None: 245 route_values['project'] = self._serialize.url('project', project, 'str') 246 if run_id is not None: 247 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 248 response = self._send(http_method='GET', 249 location_id='4f004af4-a507-489c-9b13-cb62060beb11', 250 version='4.1-preview.1', 251 route_values=route_values) 252 return self._deserialize('[TestAttachment]', self._unwrap_collection(response)) 253 254 def get_test_run_attachment_zip(self, project, run_id, attachment_id, **kwargs): 255 """GetTestRunAttachmentZip. 256 [Preview API] Returns a test run attachment 257 :param str project: Project ID or project name 258 :param int run_id: 259 :param int attachment_id: 260 :rtype: object 261 """ 262 route_values = {} 263 if project is not None: 264 route_values['project'] = self._serialize.url('project', project, 'str') 265 if run_id is not None: 266 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 267 if attachment_id is not None: 268 route_values['attachmentId'] = self._serialize.url('attachment_id', attachment_id, 'int') 269 response = self._send(http_method='GET', 270 location_id='4f004af4-a507-489c-9b13-cb62060beb11', 271 version='4.1-preview.1', 272 route_values=route_values, 273 accept_media_type='application/zip') 274 if "callback" in kwargs: 275 callback = kwargs["callback"] 276 else: 277 callback = None 278 return self._client.stream_download(response, callback=callback) 279 280 def get_bugs_linked_to_test_result(self, project, run_id, test_case_result_id): 281 """GetBugsLinkedToTestResult. 282 [Preview API] 283 :param str project: Project ID or project name 284 :param int run_id: 285 :param int test_case_result_id: 286 :rtype: [WorkItemReference] 287 """ 288 route_values = {} 289 if project is not None: 290 route_values['project'] = self._serialize.url('project', project, 'str') 291 if run_id is not None: 292 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 293 if test_case_result_id is not None: 294 route_values['testCaseResultId'] = self._serialize.url('test_case_result_id', test_case_result_id, 'int') 295 response = self._send(http_method='GET', 296 location_id='6de20ca2-67de-4faf-97fa-38c5d585eb00', 297 version='4.1-preview.1', 298 route_values=route_values) 299 return self._deserialize('[WorkItemReference]', self._unwrap_collection(response)) 300 301 def get_clone_information(self, project, clone_operation_id, include_details=None): 302 """GetCloneInformation. 303 [Preview API] 304 :param str project: Project ID or project name 305 :param int clone_operation_id: 306 :param bool include_details: 307 :rtype: :class:`<CloneOperationInformation> <test.v4_1.models.CloneOperationInformation>` 308 """ 309 route_values = {} 310 if project is not None: 311 route_values['project'] = self._serialize.url('project', project, 'str') 312 if clone_operation_id is not None: 313 route_values['cloneOperationId'] = self._serialize.url('clone_operation_id', clone_operation_id, 'int') 314 query_parameters = {} 315 if include_details is not None: 316 query_parameters['$includeDetails'] = self._serialize.query('include_details', include_details, 'bool') 317 response = self._send(http_method='GET', 318 location_id='5b9d6320-abed-47a5-a151-cd6dc3798be6', 319 version='4.1-preview.2', 320 route_values=route_values, 321 query_parameters=query_parameters) 322 return self._deserialize('CloneOperationInformation', response) 323 324 def clone_test_plan(self, clone_request_body, project, plan_id): 325 """CloneTestPlan. 326 [Preview API] 327 :param :class:`<TestPlanCloneRequest> <test.v4_1.models.TestPlanCloneRequest>` clone_request_body: 328 :param str project: Project ID or project name 329 :param int plan_id: 330 :rtype: :class:`<CloneOperationInformation> <test.v4_1.models.CloneOperationInformation>` 331 """ 332 route_values = {} 333 if project is not None: 334 route_values['project'] = self._serialize.url('project', project, 'str') 335 if plan_id is not None: 336 route_values['planId'] = self._serialize.url('plan_id', plan_id, 'int') 337 content = self._serialize.body(clone_request_body, 'TestPlanCloneRequest') 338 response = self._send(http_method='POST', 339 location_id='edc3ef4b-8460-4e86-86fa-8e4f5e9be831', 340 version='4.1-preview.2', 341 route_values=route_values, 342 content=content) 343 return self._deserialize('CloneOperationInformation', response) 344 345 def clone_test_suite(self, clone_request_body, project, plan_id, source_suite_id): 346 """CloneTestSuite. 347 [Preview API] 348 :param :class:`<TestSuiteCloneRequest> <test.v4_1.models.TestSuiteCloneRequest>` clone_request_body: 349 :param str project: Project ID or project name 350 :param int plan_id: 351 :param int source_suite_id: 352 :rtype: :class:`<CloneOperationInformation> <test.v4_1.models.CloneOperationInformation>` 353 """ 354 route_values = {} 355 if project is not None: 356 route_values['project'] = self._serialize.url('project', project, 'str') 357 if plan_id is not None: 358 route_values['planId'] = self._serialize.url('plan_id', plan_id, 'int') 359 if source_suite_id is not None: 360 route_values['sourceSuiteId'] = self._serialize.url('source_suite_id', source_suite_id, 'int') 361 content = self._serialize.body(clone_request_body, 'TestSuiteCloneRequest') 362 response = self._send(http_method='POST', 363 location_id='751e4ab5-5bf6-4fb5-9d5d-19ef347662dd', 364 version='4.1-preview.2', 365 route_values=route_values, 366 content=content) 367 return self._deserialize('CloneOperationInformation', response) 368 369 def get_build_code_coverage(self, project, build_id, flags): 370 """GetBuildCodeCoverage. 371 [Preview API] 372 :param str project: Project ID or project name 373 :param int build_id: 374 :param int flags: 375 :rtype: [BuildCoverage] 376 """ 377 route_values = {} 378 if project is not None: 379 route_values['project'] = self._serialize.url('project', project, 'str') 380 query_parameters = {} 381 if build_id is not None: 382 query_parameters['buildId'] = self._serialize.query('build_id', build_id, 'int') 383 if flags is not None: 384 query_parameters['flags'] = self._serialize.query('flags', flags, 'int') 385 response = self._send(http_method='GET', 386 location_id='77560e8a-4e8c-4d59-894e-a5f264c24444', 387 version='4.1-preview.1', 388 route_values=route_values, 389 query_parameters=query_parameters) 390 return self._deserialize('[BuildCoverage]', self._unwrap_collection(response)) 391 392 def get_code_coverage_summary(self, project, build_id, delta_build_id=None): 393 """GetCodeCoverageSummary. 394 [Preview API] 395 :param str project: Project ID or project name 396 :param int build_id: 397 :param int delta_build_id: 398 :rtype: :class:`<CodeCoverageSummary> <test.v4_1.models.CodeCoverageSummary>` 399 """ 400 route_values = {} 401 if project is not None: 402 route_values['project'] = self._serialize.url('project', project, 'str') 403 query_parameters = {} 404 if build_id is not None: 405 query_parameters['buildId'] = self._serialize.query('build_id', build_id, 'int') 406 if delta_build_id is not None: 407 query_parameters['deltaBuildId'] = self._serialize.query('delta_build_id', delta_build_id, 'int') 408 response = self._send(http_method='GET', 409 location_id='77560e8a-4e8c-4d59-894e-a5f264c24444', 410 version='4.1-preview.1', 411 route_values=route_values, 412 query_parameters=query_parameters) 413 return self._deserialize('CodeCoverageSummary', response) 414 415 def update_code_coverage_summary(self, coverage_data, project, build_id): 416 """UpdateCodeCoverageSummary. 417 [Preview API] http://(tfsserver):8080/tfs/DefaultCollection/_apis/test/CodeCoverage?buildId=10 Request: Json of code coverage summary 418 :param :class:`<CodeCoverageData> <test.v4_1.models.CodeCoverageData>` coverage_data: 419 :param str project: Project ID or project name 420 :param int build_id: 421 """ 422 route_values = {} 423 if project is not None: 424 route_values['project'] = self._serialize.url('project', project, 'str') 425 query_parameters = {} 426 if build_id is not None: 427 query_parameters['buildId'] = self._serialize.query('build_id', build_id, 'int') 428 content = self._serialize.body(coverage_data, 'CodeCoverageData') 429 self._send(http_method='POST', 430 location_id='77560e8a-4e8c-4d59-894e-a5f264c24444', 431 version='4.1-preview.1', 432 route_values=route_values, 433 query_parameters=query_parameters, 434 content=content) 435 436 def get_test_run_code_coverage(self, project, run_id, flags): 437 """GetTestRunCodeCoverage. 438 [Preview API] 439 :param str project: Project ID or project name 440 :param int run_id: 441 :param int flags: 442 :rtype: [TestRunCoverage] 443 """ 444 route_values = {} 445 if project is not None: 446 route_values['project'] = self._serialize.url('project', project, 'str') 447 if run_id is not None: 448 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 449 query_parameters = {} 450 if flags is not None: 451 query_parameters['flags'] = self._serialize.query('flags', flags, 'int') 452 response = self._send(http_method='GET', 453 location_id='9629116f-3b89-4ed8-b358-d4694efda160', 454 version='4.1-preview.1', 455 route_values=route_values, 456 query_parameters=query_parameters) 457 return self._deserialize('[TestRunCoverage]', self._unwrap_collection(response)) 458 459 def create_test_configuration(self, test_configuration, project): 460 """CreateTestConfiguration. 461 [Preview API] 462 :param :class:`<TestConfiguration> <test.v4_1.models.TestConfiguration>` test_configuration: 463 :param str project: Project ID or project name 464 :rtype: :class:`<TestConfiguration> <test.v4_1.models.TestConfiguration>` 465 """ 466 route_values = {} 467 if project is not None: 468 route_values['project'] = self._serialize.url('project', project, 'str') 469 content = self._serialize.body(test_configuration, 'TestConfiguration') 470 response = self._send(http_method='POST', 471 location_id='d667591b-b9fd-4263-997a-9a084cca848f', 472 version='4.1-preview.2', 473 route_values=route_values, 474 content=content) 475 return self._deserialize('TestConfiguration', response) 476 477 def delete_test_configuration(self, project, test_configuration_id): 478 """DeleteTestConfiguration. 479 [Preview API] 480 :param str project: Project ID or project name 481 :param int test_configuration_id: 482 """ 483 route_values = {} 484 if project is not None: 485 route_values['project'] = self._serialize.url('project', project, 'str') 486 if test_configuration_id is not None: 487 route_values['testConfigurationId'] = self._serialize.url('test_configuration_id', test_configuration_id, 'int') 488 self._send(http_method='DELETE', 489 location_id='d667591b-b9fd-4263-997a-9a084cca848f', 490 version='4.1-preview.2', 491 route_values=route_values) 492 493 def get_test_configuration_by_id(self, project, test_configuration_id): 494 """GetTestConfigurationById. 495 [Preview API] 496 :param str project: Project ID or project name 497 :param int test_configuration_id: 498 :rtype: :class:`<TestConfiguration> <test.v4_1.models.TestConfiguration>` 499 """ 500 route_values = {} 501 if project is not None: 502 route_values['project'] = self._serialize.url('project', project, 'str') 503 if test_configuration_id is not None: 504 route_values['testConfigurationId'] = self._serialize.url('test_configuration_id', test_configuration_id, 'int') 505 response = self._send(http_method='GET', 506 location_id='d667591b-b9fd-4263-997a-9a084cca848f', 507 version='4.1-preview.2', 508 route_values=route_values) 509 return self._deserialize('TestConfiguration', response) 510 511 def get_test_configurations(self, project, skip=None, top=None, continuation_token=None, include_all_properties=None): 512 """GetTestConfigurations. 513 [Preview API] 514 :param str project: Project ID or project name 515 :param int skip: 516 :param int top: 517 :param str continuation_token: 518 :param bool include_all_properties: 519 :rtype: [TestConfiguration] 520 """ 521 route_values = {} 522 if project is not None: 523 route_values['project'] = self._serialize.url('project', project, 'str') 524 query_parameters = {} 525 if skip is not None: 526 query_parameters['$skip'] = self._serialize.query('skip', skip, 'int') 527 if top is not None: 528 query_parameters['$top'] = self._serialize.query('top', top, 'int') 529 if continuation_token is not None: 530 query_parameters['continuationToken'] = self._serialize.query('continuation_token', continuation_token, 'str') 531 if include_all_properties is not None: 532 query_parameters['includeAllProperties'] = self._serialize.query('include_all_properties', include_all_properties, 'bool') 533 response = self._send(http_method='GET', 534 location_id='d667591b-b9fd-4263-997a-9a084cca848f', 535 version='4.1-preview.2', 536 route_values=route_values, 537 query_parameters=query_parameters) 538 return self._deserialize('[TestConfiguration]', self._unwrap_collection(response)) 539 540 def update_test_configuration(self, test_configuration, project, test_configuration_id): 541 """UpdateTestConfiguration. 542 [Preview API] 543 :param :class:`<TestConfiguration> <test.v4_1.models.TestConfiguration>` test_configuration: 544 :param str project: Project ID or project name 545 :param int test_configuration_id: 546 :rtype: :class:`<TestConfiguration> <test.v4_1.models.TestConfiguration>` 547 """ 548 route_values = {} 549 if project is not None: 550 route_values['project'] = self._serialize.url('project', project, 'str') 551 if test_configuration_id is not None: 552 route_values['testConfigurationId'] = self._serialize.url('test_configuration_id', test_configuration_id, 'int') 553 content = self._serialize.body(test_configuration, 'TestConfiguration') 554 response = self._send(http_method='PATCH', 555 location_id='d667591b-b9fd-4263-997a-9a084cca848f', 556 version='4.1-preview.2', 557 route_values=route_values, 558 content=content) 559 return self._deserialize('TestConfiguration', response) 560 561 def add_custom_fields(self, new_fields, project): 562 """AddCustomFields. 563 [Preview API] 564 :param [CustomTestFieldDefinition] new_fields: 565 :param str project: Project ID or project name 566 :rtype: [CustomTestFieldDefinition] 567 """ 568 route_values = {} 569 if project is not None: 570 route_values['project'] = self._serialize.url('project', project, 'str') 571 content = self._serialize.body(new_fields, '[CustomTestFieldDefinition]') 572 response = self._send(http_method='POST', 573 location_id='8ce1923b-f4c7-4e22-b93b-f6284e525ec2', 574 version='4.1-preview.1', 575 route_values=route_values, 576 content=content) 577 return self._deserialize('[CustomTestFieldDefinition]', self._unwrap_collection(response)) 578 579 def query_custom_fields(self, project, scope_filter): 580 """QueryCustomFields. 581 [Preview API] 582 :param str project: Project ID or project name 583 :param str scope_filter: 584 :rtype: [CustomTestFieldDefinition] 585 """ 586 route_values = {} 587 if project is not None: 588 route_values['project'] = self._serialize.url('project', project, 'str') 589 query_parameters = {} 590 if scope_filter is not None: 591 query_parameters['scopeFilter'] = self._serialize.query('scope_filter', scope_filter, 'str') 592 response = self._send(http_method='GET', 593 location_id='8ce1923b-f4c7-4e22-b93b-f6284e525ec2', 594 version='4.1-preview.1', 595 route_values=route_values, 596 query_parameters=query_parameters) 597 return self._deserialize('[CustomTestFieldDefinition]', self._unwrap_collection(response)) 598 599 def query_test_result_history(self, filter, project): 600 """QueryTestResultHistory. 601 [Preview API] 602 :param :class:`<ResultsFilter> <test.v4_1.models.ResultsFilter>` filter: 603 :param str project: Project ID or project name 604 :rtype: :class:`<TestResultHistory> <test.v4_1.models.TestResultHistory>` 605 """ 606 route_values = {} 607 if project is not None: 608 route_values['project'] = self._serialize.url('project', project, 'str') 609 content = self._serialize.body(filter, 'ResultsFilter') 610 response = self._send(http_method='POST', 611 location_id='234616f5-429c-4e7b-9192-affd76731dfd', 612 version='4.1-preview.1', 613 route_values=route_values, 614 content=content) 615 return self._deserialize('TestResultHistory', response) 616 617 def get_test_iteration(self, project, run_id, test_case_result_id, iteration_id, include_action_results=None): 618 """GetTestIteration. 619 :param str project: Project ID or project name 620 :param int run_id: 621 :param int test_case_result_id: 622 :param int iteration_id: 623 :param bool include_action_results: 624 :rtype: :class:`<TestIterationDetailsModel> <test.v4_1.models.TestIterationDetailsModel>` 625 """ 626 route_values = {} 627 if project is not None: 628 route_values['project'] = self._serialize.url('project', project, 'str') 629 if run_id is not None: 630 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 631 if test_case_result_id is not None: 632 route_values['testCaseResultId'] = self._serialize.url('test_case_result_id', test_case_result_id, 'int') 633 if iteration_id is not None: 634 route_values['iterationId'] = self._serialize.url('iteration_id', iteration_id, 'int') 635 query_parameters = {} 636 if include_action_results is not None: 637 query_parameters['includeActionResults'] = self._serialize.query('include_action_results', include_action_results, 'bool') 638 response = self._send(http_method='GET', 639 location_id='73eb9074-3446-4c44-8296-2f811950ff8d', 640 version='4.1', 641 route_values=route_values, 642 query_parameters=query_parameters) 643 return self._deserialize('TestIterationDetailsModel', response) 644 645 def get_test_iterations(self, project, run_id, test_case_result_id, include_action_results=None): 646 """GetTestIterations. 647 :param str project: Project ID or project name 648 :param int run_id: 649 :param int test_case_result_id: 650 :param bool include_action_results: 651 :rtype: [TestIterationDetailsModel] 652 """ 653 route_values = {} 654 if project is not None: 655 route_values['project'] = self._serialize.url('project', project, 'str') 656 if run_id is not None: 657 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 658 if test_case_result_id is not None: 659 route_values['testCaseResultId'] = self._serialize.url('test_case_result_id', test_case_result_id, 'int') 660 query_parameters = {} 661 if include_action_results is not None: 662 query_parameters['includeActionResults'] = self._serialize.query('include_action_results', include_action_results, 'bool') 663 response = self._send(http_method='GET', 664 location_id='73eb9074-3446-4c44-8296-2f811950ff8d', 665 version='4.1', 666 route_values=route_values, 667 query_parameters=query_parameters) 668 return self._deserialize('[TestIterationDetailsModel]', self._unwrap_collection(response)) 669 670 def get_linked_work_items_by_query(self, work_item_query, project): 671 """GetLinkedWorkItemsByQuery. 672 [Preview API] 673 :param :class:`<LinkedWorkItemsQuery> <test.v4_1.models.LinkedWorkItemsQuery>` work_item_query: 674 :param str project: Project ID or project name 675 :rtype: [LinkedWorkItemsQueryResult] 676 """ 677 route_values = {} 678 if project is not None: 679 route_values['project'] = self._serialize.url('project', project, 'str') 680 content = self._serialize.body(work_item_query, 'LinkedWorkItemsQuery') 681 response = self._send(http_method='POST', 682 location_id='a4dcb25b-9878-49ea-abfd-e440bd9b1dcd', 683 version='4.1-preview.1', 684 route_values=route_values, 685 content=content) 686 return self._deserialize('[LinkedWorkItemsQueryResult]', self._unwrap_collection(response)) 687 688 def get_test_run_logs(self, project, run_id): 689 """GetTestRunLogs. 690 [Preview API] 691 :param str project: Project ID or project name 692 :param int run_id: 693 :rtype: [TestMessageLogDetails] 694 """ 695 route_values = {} 696 if project is not None: 697 route_values['project'] = self._serialize.url('project', project, 'str') 698 if run_id is not None: 699 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 700 response = self._send(http_method='GET', 701 location_id='a1e55200-637e-42e9-a7c0-7e5bfdedb1b3', 702 version='4.1-preview.1', 703 route_values=route_values) 704 return self._deserialize('[TestMessageLogDetails]', self._unwrap_collection(response)) 705 706 def get_result_parameters(self, project, run_id, test_case_result_id, iteration_id, param_name=None): 707 """GetResultParameters. 708 :param str project: Project ID or project name 709 :param int run_id: 710 :param int test_case_result_id: 711 :param int iteration_id: 712 :param str param_name: 713 :rtype: [TestResultParameterModel] 714 """ 715 route_values = {} 716 if project is not None: 717 route_values['project'] = self._serialize.url('project', project, 'str') 718 if run_id is not None: 719 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 720 if test_case_result_id is not None: 721 route_values['testCaseResultId'] = self._serialize.url('test_case_result_id', test_case_result_id, 'int') 722 if iteration_id is not None: 723 route_values['iterationId'] = self._serialize.url('iteration_id', iteration_id, 'int') 724 query_parameters = {} 725 if param_name is not None: 726 query_parameters['paramName'] = self._serialize.query('param_name', param_name, 'str') 727 response = self._send(http_method='GET', 728 location_id='7c69810d-3354-4af3-844a-180bd25db08a', 729 version='4.1', 730 route_values=route_values, 731 query_parameters=query_parameters) 732 return self._deserialize('[TestResultParameterModel]', self._unwrap_collection(response)) 733 734 def create_test_plan(self, test_plan, project): 735 """CreateTestPlan. 736 :param :class:`<PlanUpdateModel> <test.v4_1.models.PlanUpdateModel>` test_plan: 737 :param str project: Project ID or project name 738 :rtype: :class:`<TestPlan> <test.v4_1.models.TestPlan>` 739 """ 740 route_values = {} 741 if project is not None: 742 route_values['project'] = self._serialize.url('project', project, 'str') 743 content = self._serialize.body(test_plan, 'PlanUpdateModel') 744 response = self._send(http_method='POST', 745 location_id='51712106-7278-4208-8563-1c96f40cf5e4', 746 version='4.1', 747 route_values=route_values, 748 content=content) 749 return self._deserialize('TestPlan', response) 750 751 def delete_test_plan(self, project, plan_id): 752 """DeleteTestPlan. 753 :param str project: Project ID or project name 754 :param int plan_id: 755 """ 756 route_values = {} 757 if project is not None: 758 route_values['project'] = self._serialize.url('project', project, 'str') 759 if plan_id is not None: 760 route_values['planId'] = self._serialize.url('plan_id', plan_id, 'int') 761 self._send(http_method='DELETE', 762 location_id='51712106-7278-4208-8563-1c96f40cf5e4', 763 version='4.1', 764 route_values=route_values) 765 766 def get_plan_by_id(self, project, plan_id): 767 """GetPlanById. 768 :param str project: Project ID or project name 769 :param int plan_id: 770 :rtype: :class:`<TestPlan> <test.v4_1.models.TestPlan>` 771 """ 772 route_values = {} 773 if project is not None: 774 route_values['project'] = self._serialize.url('project', project, 'str') 775 if plan_id is not None: 776 route_values['planId'] = self._serialize.url('plan_id', plan_id, 'int') 777 response = self._send(http_method='GET', 778 location_id='51712106-7278-4208-8563-1c96f40cf5e4', 779 version='4.1', 780 route_values=route_values) 781 return self._deserialize('TestPlan', response) 782 783 def get_plans(self, project, owner=None, skip=None, top=None, include_plan_details=None, filter_active_plans=None): 784 """GetPlans. 785 :param str project: Project ID or project name 786 :param str owner: 787 :param int skip: 788 :param int top: 789 :param bool include_plan_details: 790 :param bool filter_active_plans: 791 :rtype: [TestPlan] 792 """ 793 route_values = {} 794 if project is not None: 795 route_values['project'] = self._serialize.url('project', project, 'str') 796 query_parameters = {} 797 if owner is not None: 798 query_parameters['owner'] = self._serialize.query('owner', owner, 'str') 799 if skip is not None: 800 query_parameters['$skip'] = self._serialize.query('skip', skip, 'int') 801 if top is not None: 802 query_parameters['$top'] = self._serialize.query('top', top, 'int') 803 if include_plan_details is not None: 804 query_parameters['includePlanDetails'] = self._serialize.query('include_plan_details', include_plan_details, 'bool') 805 if filter_active_plans is not None: 806 query_parameters['filterActivePlans'] = self._serialize.query('filter_active_plans', filter_active_plans, 'bool') 807 response = self._send(http_method='GET', 808 location_id='51712106-7278-4208-8563-1c96f40cf5e4', 809 version='4.1', 810 route_values=route_values, 811 query_parameters=query_parameters) 812 return self._deserialize('[TestPlan]', self._unwrap_collection(response)) 813 814 def update_test_plan(self, plan_update_model, project, plan_id): 815 """UpdateTestPlan. 816 :param :class:`<PlanUpdateModel> <test.v4_1.models.PlanUpdateModel>` plan_update_model: 817 :param str project: Project ID or project name 818 :param int plan_id: 819 :rtype: :class:`<TestPlan> <test.v4_1.models.TestPlan>` 820 """ 821 route_values = {} 822 if project is not None: 823 route_values['project'] = self._serialize.url('project', project, 'str') 824 if plan_id is not None: 825 route_values['planId'] = self._serialize.url('plan_id', plan_id, 'int') 826 content = self._serialize.body(plan_update_model, 'PlanUpdateModel') 827 response = self._send(http_method='PATCH', 828 location_id='51712106-7278-4208-8563-1c96f40cf5e4', 829 version='4.1', 830 route_values=route_values, 831 content=content) 832 return self._deserialize('TestPlan', response) 833 834 def get_point(self, project, plan_id, suite_id, point_ids, wit_fields=None): 835 """GetPoint. 836 :param str project: Project ID or project name 837 :param int plan_id: 838 :param int suite_id: 839 :param int point_ids: 840 :param str wit_fields: 841 :rtype: :class:`<TestPoint> <test.v4_1.models.TestPoint>` 842 """ 843 route_values = {} 844 if project is not None: 845 route_values['project'] = self._serialize.url('project', project, 'str') 846 if plan_id is not None: 847 route_values['planId'] = self._serialize.url('plan_id', plan_id, 'int') 848 if suite_id is not None: 849 route_values['suiteId'] = self._serialize.url('suite_id', suite_id, 'int') 850 if point_ids is not None: 851 route_values['pointIds'] = self._serialize.url('point_ids', point_ids, 'int') 852 query_parameters = {} 853 if wit_fields is not None: 854 query_parameters['witFields'] = self._serialize.query('wit_fields', wit_fields, 'str') 855 response = self._send(http_method='GET', 856 location_id='3bcfd5c8-be62-488e-b1da-b8289ce9299c', 857 version='4.1', 858 route_values=route_values, 859 query_parameters=query_parameters) 860 return self._deserialize('TestPoint', response) 861 862 def get_points(self, project, plan_id, suite_id, wit_fields=None, configuration_id=None, test_case_id=None, test_point_ids=None, include_point_details=None, skip=None, top=None): 863 """GetPoints. 864 :param str project: Project ID or project name 865 :param int plan_id: 866 :param int suite_id: 867 :param str wit_fields: 868 :param str configuration_id: 869 :param str test_case_id: 870 :param str test_point_ids: 871 :param bool include_point_details: 872 :param int skip: 873 :param int top: 874 :rtype: [TestPoint] 875 """ 876 route_values = {} 877 if project is not None: 878 route_values['project'] = self._serialize.url('project', project, 'str') 879 if plan_id is not None: 880 route_values['planId'] = self._serialize.url('plan_id', plan_id, 'int') 881 if suite_id is not None: 882 route_values['suiteId'] = self._serialize.url('suite_id', suite_id, 'int') 883 query_parameters = {} 884 if wit_fields is not None: 885 query_parameters['witFields'] = self._serialize.query('wit_fields', wit_fields, 'str') 886 if configuration_id is not None: 887 query_parameters['configurationId'] = self._serialize.query('configuration_id', configuration_id, 'str') 888 if test_case_id is not None: 889 query_parameters['testCaseId'] = self._serialize.query('test_case_id', test_case_id, 'str') 890 if test_point_ids is not None: 891 query_parameters['testPointIds'] = self._serialize.query('test_point_ids', test_point_ids, 'str') 892 if include_point_details is not None: 893 query_parameters['includePointDetails'] = self._serialize.query('include_point_details', include_point_details, 'bool') 894 if skip is not None: 895 query_parameters['$skip'] = self._serialize.query('skip', skip, 'int') 896 if top is not None: 897 query_parameters['$top'] = self._serialize.query('top', top, 'int') 898 response = self._send(http_method='GET', 899 location_id='3bcfd5c8-be62-488e-b1da-b8289ce9299c', 900 version='4.1', 901 route_values=route_values, 902 query_parameters=query_parameters) 903 return self._deserialize('[TestPoint]', self._unwrap_collection(response)) 904 905 def update_test_points(self, point_update_model, project, plan_id, suite_id, point_ids): 906 """UpdateTestPoints. 907 :param :class:`<PointUpdateModel> <test.v4_1.models.PointUpdateModel>` point_update_model: 908 :param str project: Project ID or project name 909 :param int plan_id: 910 :param int suite_id: 911 :param str point_ids: 912 :rtype: [TestPoint] 913 """ 914 route_values = {} 915 if project is not None: 916 route_values['project'] = self._serialize.url('project', project, 'str') 917 if plan_id is not None: 918 route_values['planId'] = self._serialize.url('plan_id', plan_id, 'int') 919 if suite_id is not None: 920 route_values['suiteId'] = self._serialize.url('suite_id', suite_id, 'int') 921 if point_ids is not None: 922 route_values['pointIds'] = self._serialize.url('point_ids', point_ids, 'str') 923 content = self._serialize.body(point_update_model, 'PointUpdateModel') 924 response = self._send(http_method='PATCH', 925 location_id='3bcfd5c8-be62-488e-b1da-b8289ce9299c', 926 version='4.1', 927 route_values=route_values, 928 content=content) 929 return self._deserialize('[TestPoint]', self._unwrap_collection(response)) 930 931 def get_points_by_query(self, query, project, skip=None, top=None): 932 """GetPointsByQuery. 933 [Preview API] 934 :param :class:`<TestPointsQuery> <test.v4_1.models.TestPointsQuery>` query: 935 :param str project: Project ID or project name 936 :param int skip: 937 :param int top: 938 :rtype: :class:`<TestPointsQuery> <test.v4_1.models.TestPointsQuery>` 939 """ 940 route_values = {} 941 if project is not None: 942 route_values['project'] = self._serialize.url('project', project, 'str') 943 query_parameters = {} 944 if skip is not None: 945 query_parameters['$skip'] = self._serialize.query('skip', skip, 'int') 946 if top is not None: 947 query_parameters['$top'] = self._serialize.query('top', top, 'int') 948 content = self._serialize.body(query, 'TestPointsQuery') 949 response = self._send(http_method='POST', 950 location_id='b4264fd0-a5d1-43e2-82a5-b9c46b7da9ce', 951 version='4.1-preview.2', 952 route_values=route_values, 953 query_parameters=query_parameters, 954 content=content) 955 return self._deserialize('TestPointsQuery', response) 956 957 def get_test_result_details_for_build(self, project, build_id, publish_context=None, group_by=None, filter=None, orderby=None, should_include_results=None, query_run_summary_for_in_progress=None): 958 """GetTestResultDetailsForBuild. 959 [Preview API] 960 :param str project: Project ID or project name 961 :param int build_id: 962 :param str publish_context: 963 :param str group_by: 964 :param str filter: 965 :param str orderby: 966 :param bool should_include_results: 967 :param bool query_run_summary_for_in_progress: 968 :rtype: :class:`<TestResultsDetails> <test.v4_1.models.TestResultsDetails>` 969 """ 970 route_values = {} 971 if project is not None: 972 route_values['project'] = self._serialize.url('project', project, 'str') 973 query_parameters = {} 974 if build_id is not None: 975 query_parameters['buildId'] = self._serialize.query('build_id', build_id, 'int') 976 if publish_context is not None: 977 query_parameters['publishContext'] = self._serialize.query('publish_context', publish_context, 'str') 978 if group_by is not None: 979 query_parameters['groupBy'] = self._serialize.query('group_by', group_by, 'str') 980 if filter is not None: 981 query_parameters['$filter'] = self._serialize.query('filter', filter, 'str') 982 if orderby is not None: 983 query_parameters['$orderby'] = self._serialize.query('orderby', orderby, 'str') 984 if should_include_results is not None: 985 query_parameters['shouldIncludeResults'] = self._serialize.query('should_include_results', should_include_results, 'bool') 986 if query_run_summary_for_in_progress is not None: 987 query_parameters['queryRunSummaryForInProgress'] = self._serialize.query('query_run_summary_for_in_progress', query_run_summary_for_in_progress, 'bool') 988 response = self._send(http_method='GET', 989 location_id='efb387b0-10d5-42e7-be40-95e06ee9430f', 990 version='4.1-preview.1', 991 route_values=route_values, 992 query_parameters=query_parameters) 993 return self._deserialize('TestResultsDetails', response) 994 995 def get_test_result_details_for_release(self, project, release_id, release_env_id, publish_context=None, group_by=None, filter=None, orderby=None, should_include_results=None, query_run_summary_for_in_progress=None): 996 """GetTestResultDetailsForRelease. 997 [Preview API] 998 :param str project: Project ID or project name 999 :param int release_id: 1000 :param int release_env_id: 1001 :param str publish_context: 1002 :param str group_by: 1003 :param str filter: 1004 :param str orderby: 1005 :param bool should_include_results: 1006 :param bool query_run_summary_for_in_progress: 1007 :rtype: :class:`<TestResultsDetails> <test.v4_1.models.TestResultsDetails>` 1008 """ 1009 route_values = {} 1010 if project is not None: 1011 route_values['project'] = self._serialize.url('project', project, 'str') 1012 query_parameters = {} 1013 if release_id is not None: 1014 query_parameters['releaseId'] = self._serialize.query('release_id', release_id, 'int') 1015 if release_env_id is not None: 1016 query_parameters['releaseEnvId'] = self._serialize.query('release_env_id', release_env_id, 'int') 1017 if publish_context is not None: 1018 query_parameters['publishContext'] = self._serialize.query('publish_context', publish_context, 'str') 1019 if group_by is not None: 1020 query_parameters['groupBy'] = self._serialize.query('group_by', group_by, 'str') 1021 if filter is not None: 1022 query_parameters['$filter'] = self._serialize.query('filter', filter, 'str') 1023 if orderby is not None: 1024 query_parameters['$orderby'] = self._serialize.query('orderby', orderby, 'str') 1025 if should_include_results is not None: 1026 query_parameters['shouldIncludeResults'] = self._serialize.query('should_include_results', should_include_results, 'bool') 1027 if query_run_summary_for_in_progress is not None: 1028 query_parameters['queryRunSummaryForInProgress'] = self._serialize.query('query_run_summary_for_in_progress', query_run_summary_for_in_progress, 'bool') 1029 response = self._send(http_method='GET', 1030 location_id='b834ec7e-35bb-450f-a3c8-802e70ca40dd', 1031 version='4.1-preview.1', 1032 route_values=route_values, 1033 query_parameters=query_parameters) 1034 return self._deserialize('TestResultsDetails', response) 1035 1036 def publish_test_result_document(self, document, project, run_id): 1037 """PublishTestResultDocument. 1038 [Preview API] 1039 :param :class:`<TestResultDocument> <test.v4_1.models.TestResultDocument>` document: 1040 :param str project: Project ID or project name 1041 :param int run_id: 1042 :rtype: :class:`<TestResultDocument> <test.v4_1.models.TestResultDocument>` 1043 """ 1044 route_values = {} 1045 if project is not None: 1046 route_values['project'] = self._serialize.url('project', project, 'str') 1047 if run_id is not None: 1048 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 1049 content = self._serialize.body(document, 'TestResultDocument') 1050 response = self._send(http_method='POST', 1051 location_id='370ca04b-8eec-4ca8-8ba3-d24dca228791', 1052 version='4.1-preview.1', 1053 route_values=route_values, 1054 content=content) 1055 return self._deserialize('TestResultDocument', response) 1056 1057 def get_result_groups_by_build(self, project, build_id, publish_context, fields=None): 1058 """GetResultGroupsByBuild. 1059 [Preview API] 1060 :param str project: Project ID or project name 1061 :param int build_id: 1062 :param str publish_context: 1063 :param [str] fields: 1064 :rtype: :class:`<TestResultsGroupsForBuild> <test.v4_1.models.TestResultsGroupsForBuild>` 1065 """ 1066 route_values = {} 1067 if project is not None: 1068 route_values['project'] = self._serialize.url('project', project, 'str') 1069 query_parameters = {} 1070 if build_id is not None: 1071 query_parameters['buildId'] = self._serialize.query('build_id', build_id, 'int') 1072 if publish_context is not None: 1073 query_parameters['publishContext'] = self._serialize.query('publish_context', publish_context, 'str') 1074 if fields is not None: 1075 fields = ",".join(fields) 1076 query_parameters['fields'] = self._serialize.query('fields', fields, 'str') 1077 response = self._send(http_method='GET', 1078 location_id='d279d052-c55a-4204-b913-42f733b52958', 1079 version='4.1-preview.1', 1080 route_values=route_values, 1081 query_parameters=query_parameters) 1082 return self._deserialize('TestResultsGroupsForBuild', response) 1083 1084 def get_result_groups_by_release(self, project, release_id, publish_context, release_env_id=None, fields=None): 1085 """GetResultGroupsByRelease. 1086 [Preview API] 1087 :param str project: Project ID or project name 1088 :param int release_id: 1089 :param str publish_context: 1090 :param int release_env_id: 1091 :param [str] fields: 1092 :rtype: :class:`<TestResultsGroupsForRelease> <test.v4_1.models.TestResultsGroupsForRelease>` 1093 """ 1094 route_values = {} 1095 if project is not None: 1096 route_values['project'] = self._serialize.url('project', project, 'str') 1097 query_parameters = {} 1098 if release_id is not None: 1099 query_parameters['releaseId'] = self._serialize.query('release_id', release_id, 'int') 1100 if publish_context is not None: 1101 query_parameters['publishContext'] = self._serialize.query('publish_context', publish_context, 'str') 1102 if release_env_id is not None: 1103 query_parameters['releaseEnvId'] = self._serialize.query('release_env_id', release_env_id, 'int') 1104 if fields is not None: 1105 fields = ",".join(fields) 1106 query_parameters['fields'] = self._serialize.query('fields', fields, 'str') 1107 response = self._send(http_method='GET', 1108 location_id='ef5ce5d4-a4e5-47ee-804c-354518f8d03f', 1109 version='4.1-preview.1', 1110 route_values=route_values, 1111 query_parameters=query_parameters) 1112 return self._deserialize('TestResultsGroupsForRelease', response) 1113 1114 def get_result_retention_settings(self, project): 1115 """GetResultRetentionSettings. 1116 [Preview API] 1117 :param str project: Project ID or project name 1118 :rtype: :class:`<ResultRetentionSettings> <test.v4_1.models.ResultRetentionSettings>` 1119 """ 1120 route_values = {} 1121 if project is not None: 1122 route_values['project'] = self._serialize.url('project', project, 'str') 1123 response = self._send(http_method='GET', 1124 location_id='a3206d9e-fa8d-42d3-88cb-f75c51e69cde', 1125 version='4.1-preview.1', 1126 route_values=route_values) 1127 return self._deserialize('ResultRetentionSettings', response) 1128 1129 def update_result_retention_settings(self, retention_settings, project): 1130 """UpdateResultRetentionSettings. 1131 [Preview API] 1132 :param :class:`<ResultRetentionSettings> <test.v4_1.models.ResultRetentionSettings>` retention_settings: 1133 :param str project: Project ID or project name 1134 :rtype: :class:`<ResultRetentionSettings> <test.v4_1.models.ResultRetentionSettings>` 1135 """ 1136 route_values = {} 1137 if project is not None: 1138 route_values['project'] = self._serialize.url('project', project, 'str') 1139 content = self._serialize.body(retention_settings, 'ResultRetentionSettings') 1140 response = self._send(http_method='PATCH', 1141 location_id='a3206d9e-fa8d-42d3-88cb-f75c51e69cde', 1142 version='4.1-preview.1', 1143 route_values=route_values, 1144 content=content) 1145 return self._deserialize('ResultRetentionSettings', response) 1146 1147 def add_test_results_to_test_run(self, results, project, run_id): 1148 """AddTestResultsToTestRun. 1149 :param [TestCaseResult] results: 1150 :param str project: Project ID or project name 1151 :param int run_id: 1152 :rtype: [TestCaseResult] 1153 """ 1154 route_values = {} 1155 if project is not None: 1156 route_values['project'] = self._serialize.url('project', project, 'str') 1157 if run_id is not None: 1158 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 1159 content = self._serialize.body(results, '[TestCaseResult]') 1160 response = self._send(http_method='POST', 1161 location_id='4637d869-3a76-4468-8057-0bb02aa385cf', 1162 version='4.1', 1163 route_values=route_values, 1164 content=content) 1165 return self._deserialize('[TestCaseResult]', self._unwrap_collection(response)) 1166 1167 def get_test_result_by_id(self, project, run_id, test_case_result_id, details_to_include=None): 1168 """GetTestResultById. 1169 :param str project: Project ID or project name 1170 :param int run_id: 1171 :param int test_case_result_id: 1172 :param str details_to_include: 1173 :rtype: :class:`<TestCaseResult> <test.v4_1.models.TestCaseResult>` 1174 """ 1175 route_values = {} 1176 if project is not None: 1177 route_values['project'] = self._serialize.url('project', project, 'str') 1178 if run_id is not None: 1179 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 1180 if test_case_result_id is not None: 1181 route_values['testCaseResultId'] = self._serialize.url('test_case_result_id', test_case_result_id, 'int') 1182 query_parameters = {} 1183 if details_to_include is not None: 1184 query_parameters['detailsToInclude'] = self._serialize.query('details_to_include', details_to_include, 'str') 1185 response = self._send(http_method='GET', 1186 location_id='4637d869-3a76-4468-8057-0bb02aa385cf', 1187 version='4.1', 1188 route_values=route_values, 1189 query_parameters=query_parameters) 1190 return self._deserialize('TestCaseResult', response) 1191 1192 def get_test_results(self, project, run_id, details_to_include=None, skip=None, top=None, outcomes=None): 1193 """GetTestResults. 1194 Get Test Results for a run based on filters. 1195 :param str project: Project ID or project name 1196 :param int run_id: Test Run Id for which results need to be fetched. 1197 :param str details_to_include: enum indicates details need to be fetched. 1198 :param int skip: Number of results to skip from beginning. 1199 :param int top: Number of results to return. Max is 1000 when detailsToInclude is None and 100 otherwise. 1200 :param [TestOutcome] outcomes: List of Testoutcome to filter results, comma seperated list of Testoutcome. 1201 :rtype: [TestCaseResult] 1202 """ 1203 route_values = {} 1204 if project is not None: 1205 route_values['project'] = self._serialize.url('project', project, 'str') 1206 if run_id is not None: 1207 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 1208 query_parameters = {} 1209 if details_to_include is not None: 1210 query_parameters['detailsToInclude'] = self._serialize.query('details_to_include', details_to_include, 'str') 1211 if skip is not None: 1212 query_parameters['$skip'] = self._serialize.query('skip', skip, 'int') 1213 if top is not None: 1214 query_parameters['$top'] = self._serialize.query('top', top, 'int') 1215 if outcomes is not None: 1216 outcomes = ",".join(map(str, outcomes)) 1217 query_parameters['outcomes'] = self._serialize.query('outcomes', outcomes, 'str') 1218 response = self._send(http_method='GET', 1219 location_id='4637d869-3a76-4468-8057-0bb02aa385cf', 1220 version='4.1', 1221 route_values=route_values, 1222 query_parameters=query_parameters) 1223 return self._deserialize('[TestCaseResult]', self._unwrap_collection(response)) 1224 1225 def update_test_results(self, results, project, run_id): 1226 """UpdateTestResults. 1227 :param [TestCaseResult] results: 1228 :param str project: Project ID or project name 1229 :param int run_id: 1230 :rtype: [TestCaseResult] 1231 """ 1232 route_values = {} 1233 if project is not None: 1234 route_values['project'] = self._serialize.url('project', project, 'str') 1235 if run_id is not None: 1236 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 1237 content = self._serialize.body(results, '[TestCaseResult]') 1238 response = self._send(http_method='PATCH', 1239 location_id='4637d869-3a76-4468-8057-0bb02aa385cf', 1240 version='4.1', 1241 route_values=route_values, 1242 content=content) 1243 return self._deserialize('[TestCaseResult]', self._unwrap_collection(response)) 1244 1245 def get_test_results_by_query(self, query, project): 1246 """GetTestResultsByQuery. 1247 [Preview API] 1248 :param :class:`<TestResultsQuery> <test.v4_1.models.TestResultsQuery>` query: 1249 :param str project: Project ID or project name 1250 :rtype: :class:`<TestResultsQuery> <test.v4_1.models.TestResultsQuery>` 1251 """ 1252 route_values = {} 1253 if project is not None: 1254 route_values['project'] = self._serialize.url('project', project, 'str') 1255 content = self._serialize.body(query, 'TestResultsQuery') 1256 response = self._send(http_method='POST', 1257 location_id='6711da49-8e6f-4d35-9f73-cef7a3c81a5b', 1258 version='4.1-preview.4', 1259 route_values=route_values, 1260 content=content) 1261 return self._deserialize('TestResultsQuery', response) 1262 1263 def query_test_results_report_for_build(self, project, build_id, publish_context=None, include_failure_details=None, build_to_compare=None): 1264 """QueryTestResultsReportForBuild. 1265 [Preview API] 1266 :param str project: Project ID or project name 1267 :param int build_id: 1268 :param str publish_context: 1269 :param bool include_failure_details: 1270 :param :class:`<BuildReference> <test.v4_1.models.BuildReference>` build_to_compare: 1271 :rtype: :class:`<TestResultSummary> <test.v4_1.models.TestResultSummary>` 1272 """ 1273 route_values = {} 1274 if project is not None: 1275 route_values['project'] = self._serialize.url('project', project, 'str') 1276 query_parameters = {} 1277 if build_id is not None: 1278 query_parameters['buildId'] = self._serialize.query('build_id', build_id, 'int') 1279 if publish_context is not None: 1280 query_parameters['publishContext'] = self._serialize.query('publish_context', publish_context, 'str') 1281 if include_failure_details is not None: 1282 query_parameters['includeFailureDetails'] = self._serialize.query('include_failure_details', include_failure_details, 'bool') 1283 if build_to_compare is not None: 1284 if build_to_compare.id is not None: 1285 query_parameters['buildToCompare.id'] = build_to_compare.id 1286 if build_to_compare.definition_id is not None: 1287 query_parameters['buildToCompare.definitionId'] = build_to_compare.definition_id 1288 if build_to_compare.number is not None: 1289 query_parameters['buildToCompare.number'] = build_to_compare.number 1290 if build_to_compare.uri is not None: 1291 query_parameters['buildToCompare.uri'] = build_to_compare.uri 1292 if build_to_compare.build_system is not None: 1293 query_parameters['buildToCompare.buildSystem'] = build_to_compare.build_system 1294 if build_to_compare.branch_name is not None: 1295 query_parameters['buildToCompare.branchName'] = build_to_compare.branch_name 1296 if build_to_compare.repository_id is not None: 1297 query_parameters['buildToCompare.repositoryId'] = build_to_compare.repository_id 1298 response = self._send(http_method='GET', 1299 location_id='000ef77b-fea2-498d-a10d-ad1a037f559f', 1300 version='4.1-preview.1', 1301 route_values=route_values, 1302 query_parameters=query_parameters) 1303 return self._deserialize('TestResultSummary', response) 1304 1305 def query_test_results_report_for_release(self, project, release_id, release_env_id, publish_context=None, include_failure_details=None, release_to_compare=None): 1306 """QueryTestResultsReportForRelease. 1307 [Preview API] 1308 :param str project: Project ID or project name 1309 :param int release_id: 1310 :param int release_env_id: 1311 :param str publish_context: 1312 :param bool include_failure_details: 1313 :param :class:`<ReleaseReference> <test.v4_1.models.ReleaseReference>` release_to_compare: 1314 :rtype: :class:`<TestResultSummary> <test.v4_1.models.TestResultSummary>` 1315 """ 1316 route_values = {} 1317 if project is not None: 1318 route_values['project'] = self._serialize.url('project', project, 'str') 1319 query_parameters = {} 1320 if release_id is not None: 1321 query_parameters['releaseId'] = self._serialize.query('release_id', release_id, 'int') 1322 if release_env_id is not None: 1323 query_parameters['releaseEnvId'] = self._serialize.query('release_env_id', release_env_id, 'int') 1324 if publish_context is not None: 1325 query_parameters['publishContext'] = self._serialize.query('publish_context', publish_context, 'str') 1326 if include_failure_details is not None: 1327 query_parameters['includeFailureDetails'] = self._serialize.query('include_failure_details', include_failure_details, 'bool') 1328 if release_to_compare is not None: 1329 if release_to_compare.id is not None: 1330 query_parameters['releaseToCompare.id'] = release_to_compare.id 1331 if release_to_compare.name is not None: 1332 query_parameters['releaseToCompare.name'] = release_to_compare.name 1333 if release_to_compare.environment_id is not None: 1334 query_parameters['releaseToCompare.environmentId'] = release_to_compare.environment_id 1335 if release_to_compare.environment_name is not None: 1336 query_parameters['releaseToCompare.environmentName'] = release_to_compare.environment_name 1337 if release_to_compare.definition_id is not None: 1338 query_parameters['releaseToCompare.definitionId'] = release_to_compare.definition_id 1339 if release_to_compare.environment_definition_id is not None: 1340 query_parameters['releaseToCompare.environmentDefinitionId'] = release_to_compare.environment_definition_id 1341 if release_to_compare.environment_definition_name is not None: 1342 query_parameters['releaseToCompare.environmentDefinitionName'] = release_to_compare.environment_definition_name 1343 response = self._send(http_method='GET', 1344 location_id='85765790-ac68-494e-b268-af36c3929744', 1345 version='4.1-preview.1', 1346 route_values=route_values, 1347 query_parameters=query_parameters) 1348 return self._deserialize('TestResultSummary', response) 1349 1350 def query_test_results_summary_for_releases(self, releases, project): 1351 """QueryTestResultsSummaryForReleases. 1352 [Preview API] 1353 :param [ReleaseReference] releases: 1354 :param str project: Project ID or project name 1355 :rtype: [TestResultSummary] 1356 """ 1357 route_values = {} 1358 if project is not None: 1359 route_values['project'] = self._serialize.url('project', project, 'str') 1360 content = self._serialize.body(releases, '[ReleaseReference]') 1361 response = self._send(http_method='POST', 1362 location_id='85765790-ac68-494e-b268-af36c3929744', 1363 version='4.1-preview.1', 1364 route_values=route_values, 1365 content=content) 1366 return self._deserialize('[TestResultSummary]', self._unwrap_collection(response)) 1367 1368 def query_test_summary_by_requirement(self, results_context, project, work_item_ids=None): 1369 """QueryTestSummaryByRequirement. 1370 [Preview API] 1371 :param :class:`<TestResultsContext> <test.v4_1.models.TestResultsContext>` results_context: 1372 :param str project: Project ID or project name 1373 :param [int] work_item_ids: 1374 :rtype: [TestSummaryForWorkItem] 1375 """ 1376 route_values = {} 1377 if project is not None: 1378 route_values['project'] = self._serialize.url('project', project, 'str') 1379 query_parameters = {} 1380 if work_item_ids is not None: 1381 work_item_ids = ",".join(map(str, work_item_ids)) 1382 query_parameters['workItemIds'] = self._serialize.query('work_item_ids', work_item_ids, 'str') 1383 content = self._serialize.body(results_context, 'TestResultsContext') 1384 response = self._send(http_method='POST', 1385 location_id='cd08294e-308d-4460-a46e-4cfdefba0b4b', 1386 version='4.1-preview.1', 1387 route_values=route_values, 1388 query_parameters=query_parameters, 1389 content=content) 1390 return self._deserialize('[TestSummaryForWorkItem]', self._unwrap_collection(response)) 1391 1392 def query_result_trend_for_build(self, filter, project): 1393 """QueryResultTrendForBuild. 1394 [Preview API] 1395 :param :class:`<TestResultTrendFilter> <test.v4_1.models.TestResultTrendFilter>` filter: 1396 :param str project: Project ID or project name 1397 :rtype: [AggregatedDataForResultTrend] 1398 """ 1399 route_values = {} 1400 if project is not None: 1401 route_values['project'] = self._serialize.url('project', project, 'str') 1402 content = self._serialize.body(filter, 'TestResultTrendFilter') 1403 response = self._send(http_method='POST', 1404 location_id='fbc82a85-0786-4442-88bb-eb0fda6b01b0', 1405 version='4.1-preview.1', 1406 route_values=route_values, 1407 content=content) 1408 return self._deserialize('[AggregatedDataForResultTrend]', self._unwrap_collection(response)) 1409 1410 def query_result_trend_for_release(self, filter, project): 1411 """QueryResultTrendForRelease. 1412 [Preview API] 1413 :param :class:`<TestResultTrendFilter> <test.v4_1.models.TestResultTrendFilter>` filter: 1414 :param str project: Project ID or project name 1415 :rtype: [AggregatedDataForResultTrend] 1416 """ 1417 route_values = {} 1418 if project is not None: 1419 route_values['project'] = self._serialize.url('project', project, 'str') 1420 content = self._serialize.body(filter, 'TestResultTrendFilter') 1421 response = self._send(http_method='POST', 1422 location_id='dd178e93-d8dd-4887-9635-d6b9560b7b6e', 1423 version='4.1-preview.1', 1424 route_values=route_values, 1425 content=content) 1426 return self._deserialize('[AggregatedDataForResultTrend]', self._unwrap_collection(response)) 1427 1428 def get_test_run_statistics(self, project, run_id): 1429 """GetTestRunStatistics. 1430 :param str project: Project ID or project name 1431 :param int run_id: 1432 :rtype: :class:`<TestRunStatistic> <test.v4_1.models.TestRunStatistic>` 1433 """ 1434 route_values = {} 1435 if project is not None: 1436 route_values['project'] = self._serialize.url('project', project, 'str') 1437 if run_id is not None: 1438 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 1439 response = self._send(http_method='GET', 1440 location_id='0a42c424-d764-4a16-a2d5-5c85f87d0ae8', 1441 version='4.1', 1442 route_values=route_values) 1443 return self._deserialize('TestRunStatistic', response) 1444 1445 def create_test_run(self, test_run, project): 1446 """CreateTestRun. 1447 :param :class:`<RunCreateModel> <test.v4_1.models.RunCreateModel>` test_run: 1448 :param str project: Project ID or project name 1449 :rtype: :class:`<TestRun> <test.v4_1.models.TestRun>` 1450 """ 1451 route_values = {} 1452 if project is not None: 1453 route_values['project'] = self._serialize.url('project', project, 'str') 1454 content = self._serialize.body(test_run, 'RunCreateModel') 1455 response = self._send(http_method='POST', 1456 location_id='cadb3810-d47d-4a3c-a234-fe5f3be50138', 1457 version='4.1', 1458 route_values=route_values, 1459 content=content) 1460 return self._deserialize('TestRun', response) 1461 1462 def delete_test_run(self, project, run_id): 1463 """DeleteTestRun. 1464 :param str project: Project ID or project name 1465 :param int run_id: 1466 """ 1467 route_values = {} 1468 if project is not None: 1469 route_values['project'] = self._serialize.url('project', project, 'str') 1470 if run_id is not None: 1471 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 1472 self._send(http_method='DELETE', 1473 location_id='cadb3810-d47d-4a3c-a234-fe5f3be50138', 1474 version='4.1', 1475 route_values=route_values) 1476 1477 def get_test_run_by_id(self, project, run_id): 1478 """GetTestRunById. 1479 :param str project: Project ID or project name 1480 :param int run_id: 1481 :rtype: :class:`<TestRun> <test.v4_1.models.TestRun>` 1482 """ 1483 route_values = {} 1484 if project is not None: 1485 route_values['project'] = self._serialize.url('project', project, 'str') 1486 if run_id is not None: 1487 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 1488 response = self._send(http_method='GET', 1489 location_id='cadb3810-d47d-4a3c-a234-fe5f3be50138', 1490 version='4.1', 1491 route_values=route_values) 1492 return self._deserialize('TestRun', response) 1493 1494 def get_test_runs(self, project, build_uri=None, owner=None, tmi_run_id=None, plan_id=None, include_run_details=None, automated=None, skip=None, top=None): 1495 """GetTestRuns. 1496 :param str project: Project ID or project name 1497 :param str build_uri: 1498 :param str owner: 1499 :param str tmi_run_id: 1500 :param int plan_id: 1501 :param bool include_run_details: 1502 :param bool automated: 1503 :param int skip: 1504 :param int top: 1505 :rtype: [TestRun] 1506 """ 1507 route_values = {} 1508 if project is not None: 1509 route_values['project'] = self._serialize.url('project', project, 'str') 1510 query_parameters = {} 1511 if build_uri is not None: 1512 query_parameters['buildUri'] = self._serialize.query('build_uri', build_uri, 'str') 1513 if owner is not None: 1514 query_parameters['owner'] = self._serialize.query('owner', owner, 'str') 1515 if tmi_run_id is not None: 1516 query_parameters['tmiRunId'] = self._serialize.query('tmi_run_id', tmi_run_id, 'str') 1517 if plan_id is not None: 1518 query_parameters['planId'] = self._serialize.query('plan_id', plan_id, 'int') 1519 if include_run_details is not None: 1520 query_parameters['includeRunDetails'] = self._serialize.query('include_run_details', include_run_details, 'bool') 1521 if automated is not None: 1522 query_parameters['automated'] = self._serialize.query('automated', automated, 'bool') 1523 if skip is not None: 1524 query_parameters['$skip'] = self._serialize.query('skip', skip, 'int') 1525 if top is not None: 1526 query_parameters['$top'] = self._serialize.query('top', top, 'int') 1527 response = self._send(http_method='GET', 1528 location_id='cadb3810-d47d-4a3c-a234-fe5f3be50138', 1529 version='4.1', 1530 route_values=route_values, 1531 query_parameters=query_parameters) 1532 return self._deserialize('[TestRun]', self._unwrap_collection(response)) 1533 1534 def query_test_runs(self, project, min_last_updated_date, max_last_updated_date, state=None, plan_ids=None, is_automated=None, publish_context=None, build_ids=None, build_def_ids=None, branch_name=None, release_ids=None, release_def_ids=None, release_env_ids=None, release_env_def_ids=None, run_title=None, top=None, continuation_token=None): 1535 """QueryTestRuns. 1536 Query Test Runs based on filters. 1537 :param str project: Project ID or project name 1538 :param datetime min_last_updated_date: Minimum Last Modified Date of run to be queried (Mandatory). 1539 :param datetime max_last_updated_date: Maximum Last Modified Date of run to be queried (Mandatory, difference between min and max date can be atmost 7 days). 1540 :param str state: Current state of the Runs to be queried. 1541 :param [int] plan_ids: Plan Ids of the Runs to be queried, comma seperated list of valid ids. 1542 :param bool is_automated: Automation type of the Runs to be queried. 1543 :param str publish_context: PublishContext of the Runs to be queried. 1544 :param [int] build_ids: Build Ids of the Runs to be queried, comma seperated list of valid ids. 1545 :param [int] build_def_ids: Build Definition Ids of the Runs to be queried, comma seperated list of valid ids. 1546 :param str branch_name: Source Branch name of the Runs to be queried. 1547 :param [int] release_ids: Release Ids of the Runs to be queried, comma seperated list of valid ids. 1548 :param [int] release_def_ids: Release Definition Ids of the Runs to be queried, comma seperated list of valid ids. 1549 :param [int] release_env_ids: Release Environment Ids of the Runs to be queried, comma seperated list of valid ids. 1550 :param [int] release_env_def_ids: Release Environment Definition Ids of the Runs to be queried, comma seperated list of valid ids. 1551 :param str run_title: Run Title of the Runs to be queried. 1552 :param int top: Number of runs to be queried. Limit is 100 1553 :param str continuation_token: continuationToken received from previous batch or null for first batch. 1554 :rtype: [TestRun] 1555 """ 1556 route_values = {} 1557 if project is not None: 1558 route_values['project'] = self._serialize.url('project', project, 'str') 1559 query_parameters = {} 1560 if min_last_updated_date is not None: 1561 query_parameters['minLastUpdatedDate'] = self._serialize.query('min_last_updated_date', min_last_updated_date, 'iso-8601') 1562 if max_last_updated_date is not None: 1563 query_parameters['maxLastUpdatedDate'] = self._serialize.query('max_last_updated_date', max_last_updated_date, 'iso-8601') 1564 if state is not None: 1565 query_parameters['state'] = self._serialize.query('state', state, 'str') 1566 if plan_ids is not None: 1567 plan_ids = ",".join(map(str, plan_ids)) 1568 query_parameters['planIds'] = self._serialize.query('plan_ids', plan_ids, 'str') 1569 if is_automated is not None: 1570 query_parameters['isAutomated'] = self._serialize.query('is_automated', is_automated, 'bool') 1571 if publish_context is not None: 1572 query_parameters['publishContext'] = self._serialize.query('publish_context', publish_context, 'str') 1573 if build_ids is not None: 1574 build_ids = ",".join(map(str, build_ids)) 1575 query_parameters['buildIds'] = self._serialize.query('build_ids', build_ids, 'str') 1576 if build_def_ids is not None: 1577 build_def_ids = ",".join(map(str, build_def_ids)) 1578 query_parameters['buildDefIds'] = self._serialize.query('build_def_ids', build_def_ids, 'str') 1579 if branch_name is not None: 1580 query_parameters['branchName'] = self._serialize.query('branch_name', branch_name, 'str') 1581 if release_ids is not None: 1582 release_ids = ",".join(map(str, release_ids)) 1583 query_parameters['releaseIds'] = self._serialize.query('release_ids', release_ids, 'str') 1584 if release_def_ids is not None: 1585 release_def_ids = ",".join(map(str, release_def_ids)) 1586 query_parameters['releaseDefIds'] = self._serialize.query('release_def_ids', release_def_ids, 'str') 1587 if release_env_ids is not None: 1588 release_env_ids = ",".join(map(str, release_env_ids)) 1589 query_parameters['releaseEnvIds'] = self._serialize.query('release_env_ids', release_env_ids, 'str') 1590 if release_env_def_ids is not None: 1591 release_env_def_ids = ",".join(map(str, release_env_def_ids)) 1592 query_parameters['releaseEnvDefIds'] = self._serialize.query('release_env_def_ids', release_env_def_ids, 'str') 1593 if run_title is not None: 1594 query_parameters['runTitle'] = self._serialize.query('run_title', run_title, 'str') 1595 if top is not None: 1596 query_parameters['$top'] = self._serialize.query('top', top, 'int') 1597 if continuation_token is not None: 1598 query_parameters['continuationToken'] = self._serialize.query('continuation_token', continuation_token, 'str') 1599 response = self._send(http_method='GET', 1600 location_id='cadb3810-d47d-4a3c-a234-fe5f3be50138', 1601 version='4.1', 1602 route_values=route_values, 1603 query_parameters=query_parameters) 1604 return self._deserialize('[TestRun]', self._unwrap_collection(response)) 1605 1606 def update_test_run(self, run_update_model, project, run_id): 1607 """UpdateTestRun. 1608 :param :class:`<RunUpdateModel> <test.v4_1.models.RunUpdateModel>` run_update_model: 1609 :param str project: Project ID or project name 1610 :param int run_id: 1611 :rtype: :class:`<TestRun> <test.v4_1.models.TestRun>` 1612 """ 1613 route_values = {} 1614 if project is not None: 1615 route_values['project'] = self._serialize.url('project', project, 'str') 1616 if run_id is not None: 1617 route_values['runId'] = self._serialize.url('run_id', run_id, 'int') 1618 content = self._serialize.body(run_update_model, 'RunUpdateModel') 1619 response = self._send(http_method='PATCH', 1620 location_id='cadb3810-d47d-4a3c-a234-fe5f3be50138', 1621 version='4.1', 1622 route_values=route_values, 1623 content=content) 1624 return self._deserialize('TestRun', response) 1625 1626 def create_test_session(self, test_session, team_context): 1627 """CreateTestSession. 1628 [Preview API] 1629 :param :class:`<TestSession> <test.v4_1.models.TestSession>` test_session: 1630 :param :class:`<TeamContext> <test.v4_1.models.TeamContext>` team_context: The team context for the operation 1631 :rtype: :class:`<TestSession> <test.v4_1.models.TestSession>` 1632 """ 1633 project = None 1634 team = None 1635 if team_context is not None: 1636 if team_context.project_id: 1637 project = team_context.project_id 1638 else: 1639 project = team_context.project 1640 if team_context.team_id: 1641 team = team_context.team_id 1642 else: 1643 team = team_context.team 1644 1645 route_values = {} 1646 if project is not None: 1647 route_values['project'] = self._serialize.url('project', project, 'string') 1648 if team is not None: 1649 route_values['team'] = self._serialize.url('team', team, 'string') 1650 content = self._serialize.body(test_session, 'TestSession') 1651 response = self._send(http_method='POST', 1652 location_id='1500b4b4-6c69-4ca6-9b18-35e9e97fe2ac', 1653 version='4.1-preview.1', 1654 route_values=route_values, 1655 content=content) 1656 return self._deserialize('TestSession', response) 1657 1658 def get_test_sessions(self, team_context, period=None, all_sessions=None, include_all_properties=None, source=None, include_only_completed_sessions=None): 1659 """GetTestSessions. 1660 [Preview API] 1661 :param :class:`<TeamContext> <test.v4_1.models.TeamContext>` team_context: The team context for the operation 1662 :param int period: 1663 :param bool all_sessions: 1664 :param bool include_all_properties: 1665 :param str source: 1666 :param bool include_only_completed_sessions: 1667 :rtype: [TestSession] 1668 """ 1669 project = None 1670 team = None 1671 if team_context is not None: 1672 if team_context.project_id: 1673 project = team_context.project_id 1674 else: 1675 project = team_context.project 1676 if team_context.team_id: 1677 team = team_context.team_id 1678 else: 1679 team = team_context.team 1680 1681 route_values = {} 1682 if project is not None: 1683 route_values['project'] = self._serialize.url('project', project, 'string') 1684 if team is not None: 1685 route_values['team'] = self._serialize.url('team', team, 'string') 1686 query_parameters = {} 1687 if period is not None: 1688 query_parameters['period'] = self._serialize.query('period', period, 'int') 1689 if all_sessions is not None: 1690 query_parameters['allSessions'] = self._serialize.query('all_sessions', all_sessions, 'bool') 1691 if include_all_properties is not None: 1692 query_parameters['includeAllProperties'] = self._serialize.query('include_all_properties', include_all_properties, 'bool') 1693 if source is not None: 1694 query_parameters['source'] = self._serialize.query('source', source, 'str') 1695 if include_only_completed_sessions is not None: 1696 query_parameters['includeOnlyCompletedSessions'] = self._serialize.query('include_only_completed_sessions', include_only_completed_sessions, 'bool') 1697 response = self._send(http_method='GET', 1698 location_id='1500b4b4-6c69-4ca6-9b18-35e9e97fe2ac', 1699 version='4.1-preview.1', 1700 route_values=route_values, 1701 query_parameters=query_parameters) 1702 return self._deserialize('[TestSession]', self._unwrap_collection(response)) 1703 1704 def update_test_session(self, test_session, team_context): 1705 """UpdateTestSession. 1706 [Preview API] 1707 :param :class:`<TestSession> <test.v4_1.models.TestSession>` test_session: 1708 :param :class:`<TeamContext> <test.v4_1.models.TeamContext>` team_context: The team context for the operation 1709 :rtype: :class:`<TestSession> <test.v4_1.models.TestSession>` 1710 """ 1711 project = None 1712 team = None 1713 if team_context is not None: 1714 if team_context.project_id: 1715 project = team_context.project_id 1716 else: 1717 project = team_context.project 1718 if team_context.team_id: 1719 team = team_context.team_id 1720 else: 1721 team = team_context.team 1722 1723 route_values = {} 1724 if project is not None: 1725 route_values['project'] = self._serialize.url('project', project, 'string') 1726 if team is not None: 1727 route_values['team'] = self._serialize.url('team', team, 'string') 1728 content = self._serialize.body(test_session, 'TestSession') 1729 response = self._send(http_method='PATCH', 1730 location_id='1500b4b4-6c69-4ca6-9b18-35e9e97fe2ac', 1731 version='4.1-preview.1', 1732 route_values=route_values, 1733 content=content) 1734 return self._deserialize('TestSession', response) 1735 1736 def delete_shared_parameter(self, project, shared_parameter_id): 1737 """DeleteSharedParameter. 1738 [Preview API] 1739 :param str project: Project ID or project name 1740 :param int shared_parameter_id: 1741 """ 1742 route_values = {} 1743 if project is not None: 1744 route_values['project'] = self._serialize.url('project', project, 'str') 1745 if shared_parameter_id is not None: 1746 route_values['sharedParameterId'] = self._serialize.url('shared_parameter_id', shared_parameter_id, 'int') 1747 self._send(http_method='DELETE', 1748 location_id='8300eeca-0f8c-4eff-a089-d2dda409c41f', 1749 version='4.1-preview.1', 1750 route_values=route_values) 1751 1752 def delete_shared_step(self, project, shared_step_id): 1753 """DeleteSharedStep. 1754 [Preview API] 1755 :param str project: Project ID or project name 1756 :param int shared_step_id: 1757 """ 1758 route_values = {} 1759 if project is not None: 1760 route_values['project'] = self._serialize.url('project', project, 'str') 1761 if shared_step_id is not None: 1762 route_values['sharedStepId'] = self._serialize.url('shared_step_id', shared_step_id, 'int') 1763 self._send(http_method='DELETE', 1764 location_id='fabb3cc9-e3f8-40b7-8b62-24cc4b73fccf', 1765 version='4.1-preview.1', 1766 route_values=route_values) 1767 1768 def get_suite_entries(self, project, suite_id): 1769 """GetSuiteEntries. 1770 [Preview API] 1771 :param str project: Project ID or project name 1772 :param int suite_id: 1773 :rtype: [SuiteEntry] 1774 """ 1775 route_values = {} 1776 if project is not None: 1777 route_values['project'] = self._serialize.url('project', project, 'str') 1778 if suite_id is not None: 1779 route_values['suiteId'] = self._serialize.url('suite_id', suite_id, 'int') 1780 response = self._send(http_method='GET', 1781 location_id='bf8b7f78-0c1f-49cb-89e9-d1a17bcaaad3', 1782 version='4.1-preview.1', 1783 route_values=route_values) 1784 return self._deserialize('[SuiteEntry]', self._unwrap_collection(response)) 1785 1786 def reorder_suite_entries(self, suite_entries, project, suite_id): 1787 """ReorderSuiteEntries. 1788 [Preview API] 1789 :param [SuiteEntryUpdateModel] suite_entries: 1790 :param str project: Project ID or project name 1791 :param int suite_id: 1792 :rtype: [SuiteEntry] 1793 """ 1794 route_values = {} 1795 if project is not None: 1796 route_values['project'] = self._serialize.url('project', project, 'str') 1797 if suite_id is not None: 1798 route_values['suiteId'] = self._serialize.url('suite_id', suite_id, 'int') 1799 content = self._serialize.body(suite_entries, '[SuiteEntryUpdateModel]') 1800 response = self._send(http_method='PATCH', 1801 location_id='bf8b7f78-0c1f-49cb-89e9-d1a17bcaaad3', 1802 version='4.1-preview.1', 1803 route_values=route_values, 1804 content=content) 1805 return self._deserialize('[SuiteEntry]', self._unwrap_collection(response)) 1806 1807 def add_test_cases_to_suite(self, project, plan_id, suite_id, test_case_ids): 1808 """AddTestCasesToSuite. 1809 :param str project: Project ID or project name 1810 :param int plan_id: 1811 :param int suite_id: 1812 :param str test_case_ids: 1813 :rtype: [SuiteTestCase] 1814 """ 1815 route_values = {} 1816 if project is not None: 1817 route_values['project'] = self._serialize.url('project', project, 'str') 1818 if plan_id is not None: 1819 route_values['planId'] = self._serialize.url('plan_id', plan_id, 'int') 1820 if suite_id is not None: 1821 route_values['suiteId'] = self._serialize.url('suite_id', suite_id, 'int') 1822 if test_case_ids is not None: 1823 route_values['testCaseIds'] = self._serialize.url('test_case_ids', test_case_ids, 'str') 1824 route_values['action'] = 'TestCases' 1825 response = self._send(http_method='POST', 1826 location_id='a4a1ec1c-b03f-41ca-8857-704594ecf58e', 1827 version='4.1', 1828 route_values=route_values) 1829 return self._deserialize('[SuiteTestCase]', self._unwrap_collection(response)) 1830 1831 def get_test_case_by_id(self, project, plan_id, suite_id, test_case_ids): 1832 """GetTestCaseById. 1833 :param str project: Project ID or project name 1834 :param int plan_id: 1835 :param int suite_id: 1836 :param int test_case_ids: 1837 :rtype: :class:`<SuiteTestCase> <test.v4_1.models.SuiteTestCase>` 1838 """ 1839 route_values = {} 1840 if project is not None: 1841 route_values['project'] = self._serialize.url('project', project, 'str') 1842 if plan_id is not None: 1843 route_values['planId'] = self._serialize.url('plan_id', plan_id, 'int') 1844 if suite_id is not None: 1845 route_values['suiteId'] = self._serialize.url('suite_id', suite_id, 'int') 1846 if test_case_ids is not None: 1847 route_values['testCaseIds'] = self._serialize.url('test_case_ids', test_case_ids, 'int') 1848 route_values['action'] = 'TestCases' 1849 response = self._send(http_method='GET', 1850 location_id='a4a1ec1c-b03f-41ca-8857-704594ecf58e', 1851 version='4.1', 1852 route_values=route_values) 1853 return self._deserialize('SuiteTestCase', response) 1854 1855 def get_test_cases(self, project, plan_id, suite_id): 1856 """GetTestCases. 1857 :param str project: Project ID or project name 1858 :param int plan_id: 1859 :param int suite_id: 1860 :rtype: [SuiteTestCase] 1861 """ 1862 route_values = {} 1863 if project is not None: 1864 route_values['project'] = self._serialize.url('project', project, 'str') 1865 if plan_id is not None: 1866 route_values['planId'] = self._serialize.url('plan_id', plan_id, 'int') 1867 if suite_id is not None: 1868 route_values['suiteId'] = self._serialize.url('suite_id', suite_id, 'int') 1869 route_values['action'] = 'TestCases' 1870 response = self._send(http_method='GET', 1871 location_id='a4a1ec1c-b03f-41ca-8857-704594ecf58e', 1872 version='4.1', 1873 route_values=route_values) 1874 return self._deserialize('[SuiteTestCase]', self._unwrap_collection(response)) 1875 1876 def remove_test_cases_from_suite_url(self, project, plan_id, suite_id, test_case_ids): 1877 """RemoveTestCasesFromSuiteUrl. 1878 :param str project: Project ID or project name 1879 :param int plan_id: 1880 :param int suite_id: 1881 :param str test_case_ids: 1882 """ 1883 route_values = {} 1884 if project is not None: 1885 route_values['project'] = self._serialize.url('project', project, 'str') 1886 if plan_id is not None: 1887 route_values['planId'] = self._serialize.url('plan_id', plan_id, 'int') 1888 if suite_id is not None: 1889 route_values['suiteId'] = self._serialize.url('suite_id', suite_id, 'int') 1890 if test_case_ids is not None: 1891 route_values['testCaseIds'] = self._serialize.url('test_case_ids', test_case_ids, 'str') 1892 route_values['action'] = 'TestCases' 1893 self._send(http_method='DELETE', 1894 location_id='a4a1ec1c-b03f-41ca-8857-704594ecf58e', 1895 version='4.1', 1896 route_values=route_values) 1897 1898 def create_test_suite(self, test_suite, project, plan_id, suite_id): 1899 """CreateTestSuite. 1900 :param :class:`<SuiteCreateModel> <test.v4_1.models.SuiteCreateModel>` test_suite: 1901 :param str project: Project ID or project name 1902 :param int plan_id: 1903 :param int suite_id: 1904 :rtype: [TestSuite] 1905 """ 1906 route_values = {} 1907 if project is not None: 1908 route_values['project'] = self._serialize.url('project', project, 'str') 1909 if plan_id is not None: 1910 route_values['planId'] = self._serialize.url('plan_id', plan_id, 'int') 1911 if suite_id is not None: 1912 route_values['suiteId'] = self._serialize.url('suite_id', suite_id, 'int') 1913 content = self._serialize.body(test_suite, 'SuiteCreateModel') 1914 response = self._send(http_method='POST', 1915 location_id='7b7619a0-cb54-4ab3-bf22-194056f45dd1', 1916 version='4.1', 1917 route_values=route_values, 1918 content=content) 1919 return self._deserialize('[TestSuite]', self._unwrap_collection(response)) 1920 1921 def delete_test_suite(self, project, plan_id, suite_id): 1922 """DeleteTestSuite. 1923 :param str project: Project ID or project name 1924 :param int plan_id: 1925 :param int suite_id: 1926 """ 1927 route_values = {} 1928 if project is not None: 1929 route_values['project'] = self._serialize.url('project', project, 'str') 1930 if plan_id is not None: 1931 route_values['planId'] = self._serialize.url('plan_id', plan_id, 'int') 1932 if suite_id is not None: 1933 route_values['suiteId'] = self._serialize.url('suite_id', suite_id, 'int') 1934 self._send(http_method='DELETE', 1935 location_id='7b7619a0-cb54-4ab3-bf22-194056f45dd1', 1936 version='4.1', 1937 route_values=route_values) 1938 1939 def get_test_suite_by_id(self, project, plan_id, suite_id, expand=None): 1940 """GetTestSuiteById. 1941 :param str project: Project ID or project name 1942 :param int plan_id: 1943 :param int suite_id: 1944 :param int expand: 1945 :rtype: :class:`<TestSuite> <test.v4_1.models.TestSuite>` 1946 """ 1947 route_values = {} 1948 if project is not None: 1949 route_values['project'] = self._serialize.url('project', project, 'str') 1950 if plan_id is not None: 1951 route_values['planId'] = self._serialize.url('plan_id', plan_id, 'int') 1952 if suite_id is not None: 1953 route_values['suiteId'] = self._serialize.url('suite_id', suite_id, 'int') 1954 query_parameters = {} 1955 if expand is not None: 1956 query_parameters['$expand'] = self._serialize.query('expand', expand, 'int') 1957 response = self._send(http_method='GET', 1958 location_id='7b7619a0-cb54-4ab3-bf22-194056f45dd1', 1959 version='4.1', 1960 route_values=route_values, 1961 query_parameters=query_parameters) 1962 return self._deserialize('TestSuite', response) 1963 1964 def get_test_suites_for_plan(self, project, plan_id, expand=None, skip=None, top=None, as_tree_view=None): 1965 """GetTestSuitesForPlan. 1966 :param str project: Project ID or project name 1967 :param int plan_id: 1968 :param int expand: 1969 :param int skip: 1970 :param int top: 1971 :param bool as_tree_view: 1972 :rtype: [TestSuite] 1973 """ 1974 route_values = {} 1975 if project is not None: 1976 route_values['project'] = self._serialize.url('project', project, 'str') 1977 if plan_id is not None: 1978 route_values['planId'] = self._serialize.url('plan_id', plan_id, 'int') 1979 query_parameters = {} 1980 if expand is not None: 1981 query_parameters['$expand'] = self._serialize.query('expand', expand, 'int') 1982 if skip is not None: 1983 query_parameters['$skip'] = self._serialize.query('skip', skip, 'int') 1984 if top is not None: 1985 query_parameters['$top'] = self._serialize.query('top', top, 'int') 1986 if as_tree_view is not None: 1987 query_parameters['$asTreeView'] = self._serialize.query('as_tree_view', as_tree_view, 'bool') 1988 response = self._send(http_method='GET', 1989 location_id='7b7619a0-cb54-4ab3-bf22-194056f45dd1', 1990 version='4.1', 1991 route_values=route_values, 1992 query_parameters=query_parameters) 1993 return self._deserialize('[TestSuite]', self._unwrap_collection(response)) 1994 1995 def update_test_suite(self, suite_update_model, project, plan_id, suite_id): 1996 """UpdateTestSuite. 1997 :param :class:`<SuiteUpdateModel> <test.v4_1.models.SuiteUpdateModel>` suite_update_model: 1998 :param str project: Project ID or project name 1999 :param int plan_id: 2000 :param int suite_id: 2001 :rtype: :class:`<TestSuite> <test.v4_1.models.TestSuite>` 2002 """ 2003 route_values = {} 2004 if project is not None: 2005 route_values['project'] = self._serialize.url('project', project, 'str') 2006 if plan_id is not None: 2007 route_values['planId'] = self._serialize.url('plan_id', plan_id, 'int') 2008 if suite_id is not None: 2009 route_values['suiteId'] = self._serialize.url('suite_id', suite_id, 'int') 2010 content = self._serialize.body(suite_update_model, 'SuiteUpdateModel') 2011 response = self._send(http_method='PATCH', 2012 location_id='7b7619a0-cb54-4ab3-bf22-194056f45dd1', 2013 version='4.1', 2014 route_values=route_values, 2015 content=content) 2016 return self._deserialize('TestSuite', response) 2017 2018 def get_suites_by_test_case_id(self, test_case_id): 2019 """GetSuitesByTestCaseId. 2020 :param int test_case_id: 2021 :rtype: [TestSuite] 2022 """ 2023 query_parameters = {} 2024 if test_case_id is not None: 2025 query_parameters['testCaseId'] = self._serialize.query('test_case_id', test_case_id, 'int') 2026 response = self._send(http_method='GET', 2027 location_id='09a6167b-e969-4775-9247-b94cf3819caf', 2028 version='4.1', 2029 query_parameters=query_parameters) 2030 return self._deserialize('[TestSuite]', self._unwrap_collection(response)) 2031 2032 def delete_test_case(self, project, test_case_id): 2033 """DeleteTestCase. 2034 [Preview API] 2035 :param str project: Project ID or project name 2036 :param int test_case_id: 2037 """ 2038 route_values = {} 2039 if project is not None: 2040 route_values['project'] = self._serialize.url('project', project, 'str') 2041 if test_case_id is not None: 2042 route_values['testCaseId'] = self._serialize.url('test_case_id', test_case_id, 'int') 2043 self._send(http_method='DELETE', 2044 location_id='4d472e0f-e32c-4ef8-adf4-a4078772889c', 2045 version='4.1-preview.1', 2046 route_values=route_values) 2047 2048 def create_test_settings(self, test_settings, project): 2049 """CreateTestSettings. 2050 :param :class:`<TestSettings> <test.v4_1.models.TestSettings>` test_settings: 2051 :param str project: Project ID or project name 2052 :rtype: int 2053 """ 2054 route_values = {} 2055 if project is not None: 2056 route_values['project'] = self._serialize.url('project', project, 'str') 2057 content = self._serialize.body(test_settings, 'TestSettings') 2058 response = self._send(http_method='POST', 2059 location_id='8133ce14-962f-42af-a5f9-6aa9defcb9c8', 2060 version='4.1', 2061 route_values=route_values, 2062 content=content) 2063 return self._deserialize('int', response) 2064 2065 def delete_test_settings(self, project, test_settings_id): 2066 """DeleteTestSettings. 2067 :param str project: Project ID or project name 2068 :param int test_settings_id: 2069 """ 2070 route_values = {} 2071 if project is not None: 2072 route_values['project'] = self._serialize.url('project', project, 'str') 2073 if test_settings_id is not None: 2074 route_values['testSettingsId'] = self._serialize.url('test_settings_id', test_settings_id, 'int') 2075 self._send(http_method='DELETE', 2076 location_id='8133ce14-962f-42af-a5f9-6aa9defcb9c8', 2077 version='4.1', 2078 route_values=route_values) 2079 2080 def get_test_settings_by_id(self, project, test_settings_id): 2081 """GetTestSettingsById. 2082 :param str project: Project ID or project name 2083 :param int test_settings_id: 2084 :rtype: :class:`<TestSettings> <test.v4_1.models.TestSettings>` 2085 """ 2086 route_values = {} 2087 if project is not None: 2088 route_values['project'] = self._serialize.url('project', project, 'str') 2089 if test_settings_id is not None: 2090 route_values['testSettingsId'] = self._serialize.url('test_settings_id', test_settings_id, 'int') 2091 response = self._send(http_method='GET', 2092 location_id='8133ce14-962f-42af-a5f9-6aa9defcb9c8', 2093 version='4.1', 2094 route_values=route_values) 2095 return self._deserialize('TestSettings', response) 2096 2097 def create_test_variable(self, test_variable, project): 2098 """CreateTestVariable. 2099 [Preview API] 2100 :param :class:`<TestVariable> <test.v4_1.models.TestVariable>` test_variable: 2101 :param str project: Project ID or project name 2102 :rtype: :class:`<TestVariable> <test.v4_1.models.TestVariable>` 2103 """ 2104 route_values = {} 2105 if project is not None: 2106 route_values['project'] = self._serialize.url('project', project, 'str') 2107 content = self._serialize.body(test_variable, 'TestVariable') 2108 response = self._send(http_method='POST', 2109 location_id='be3fcb2b-995b-47bf-90e5-ca3cf9980912', 2110 version='4.1-preview.1', 2111 route_values=route_values, 2112 content=content) 2113 return self._deserialize('TestVariable', response) 2114 2115 def delete_test_variable(self, project, test_variable_id): 2116 """DeleteTestVariable. 2117 [Preview API] 2118 :param str project: Project ID or project name 2119 :param int test_variable_id: 2120 """ 2121 route_values = {} 2122 if project is not None: 2123 route_values['project'] = self._serialize.url('project', project, 'str') 2124 if test_variable_id is not None: 2125 route_values['testVariableId'] = self._serialize.url('test_variable_id', test_variable_id, 'int') 2126 self._send(http_method='DELETE', 2127 location_id='be3fcb2b-995b-47bf-90e5-ca3cf9980912', 2128 version='4.1-preview.1', 2129 route_values=route_values) 2130 2131 def get_test_variable_by_id(self, project, test_variable_id): 2132 """GetTestVariableById. 2133 [Preview API] 2134 :param str project: Project ID or project name 2135 :param int test_variable_id: 2136 :rtype: :class:`<TestVariable> <test.v4_1.models.TestVariable>` 2137 """ 2138 route_values = {} 2139 if project is not None: 2140 route_values['project'] = self._serialize.url('project', project, 'str') 2141 if test_variable_id is not None: 2142 route_values['testVariableId'] = self._serialize.url('test_variable_id', test_variable_id, 'int') 2143 response = self._send(http_method='GET', 2144 location_id='be3fcb2b-995b-47bf-90e5-ca3cf9980912', 2145 version='4.1-preview.1', 2146 route_values=route_values) 2147 return self._deserialize('TestVariable', response) 2148 2149 def get_test_variables(self, project, skip=None, top=None): 2150 """GetTestVariables. 2151 [Preview API] 2152 :param str project: Project ID or project name 2153 :param int skip: 2154 :param int top: 2155 :rtype: [TestVariable] 2156 """ 2157 route_values = {} 2158 if project is not None: 2159 route_values['project'] = self._serialize.url('project', project, 'str') 2160 query_parameters = {} 2161 if skip is not None: 2162 query_parameters['$skip'] = self._serialize.query('skip', skip, 'int') 2163 if top is not None: 2164 query_parameters['$top'] = self._serialize.query('top', top, 'int') 2165 response = self._send(http_method='GET', 2166 location_id='be3fcb2b-995b-47bf-90e5-ca3cf9980912', 2167 version='4.1-preview.1', 2168 route_values=route_values, 2169 query_parameters=query_parameters) 2170 return self._deserialize('[TestVariable]', self._unwrap_collection(response)) 2171 2172 def update_test_variable(self, test_variable, project, test_variable_id): 2173 """UpdateTestVariable. 2174 [Preview API] 2175 :param :class:`<TestVariable> <test.v4_1.models.TestVariable>` test_variable: 2176 :param str project: Project ID or project name 2177 :param int test_variable_id: 2178 :rtype: :class:`<TestVariable> <test.v4_1.models.TestVariable>` 2179 """ 2180 route_values = {} 2181 if project is not None: 2182 route_values['project'] = self._serialize.url('project', project, 'str') 2183 if test_variable_id is not None: 2184 route_values['testVariableId'] = self._serialize.url('test_variable_id', test_variable_id, 'int') 2185 content = self._serialize.body(test_variable, 'TestVariable') 2186 response = self._send(http_method='PATCH', 2187 location_id='be3fcb2b-995b-47bf-90e5-ca3cf9980912', 2188 version='4.1-preview.1', 2189 route_values=route_values, 2190 content=content) 2191 return self._deserialize('TestVariable', response) 2192 2193 def add_work_item_to_test_links(self, work_item_to_test_links, project): 2194 """AddWorkItemToTestLinks. 2195 [Preview API] 2196 :param :class:`<WorkItemToTestLinks> <test.v4_1.models.WorkItemToTestLinks>` work_item_to_test_links: 2197 :param str project: Project ID or project name 2198 :rtype: :class:`<WorkItemToTestLinks> <test.v4_1.models.WorkItemToTestLinks>` 2199 """ 2200 route_values = {} 2201 if project is not None: 2202 route_values['project'] = self._serialize.url('project', project, 'str') 2203 content = self._serialize.body(work_item_to_test_links, 'WorkItemToTestLinks') 2204 response = self._send(http_method='POST', 2205 location_id='371b1655-ce05-412e-a113-64cc77bb78d2', 2206 version='4.1-preview.1', 2207 route_values=route_values, 2208 content=content) 2209 return self._deserialize('WorkItemToTestLinks', response) 2210 2211 def delete_test_method_to_work_item_link(self, project, test_name, work_item_id): 2212 """DeleteTestMethodToWorkItemLink. 2213 [Preview API] 2214 :param str project: Project ID or project name 2215 :param str test_name: 2216 :param int work_item_id: 2217 :rtype: bool 2218 """ 2219 route_values = {} 2220 if project is not None: 2221 route_values['project'] = self._serialize.url('project', project, 'str') 2222 query_parameters = {} 2223 if test_name is not None: 2224 query_parameters['testName'] = self._serialize.query('test_name', test_name, 'str') 2225 if work_item_id is not None: 2226 query_parameters['workItemId'] = self._serialize.query('work_item_id', work_item_id, 'int') 2227 response = self._send(http_method='DELETE', 2228 location_id='7b0bdee3-a354-47f9-a42c-89018d7808d5', 2229 version='4.1-preview.1', 2230 route_values=route_values, 2231 query_parameters=query_parameters) 2232 return self._deserialize('bool', response) 2233 2234 def query_test_method_linked_work_items(self, project, test_name): 2235 """QueryTestMethodLinkedWorkItems. 2236 [Preview API] 2237 :param str project: Project ID or project name 2238 :param str test_name: 2239 :rtype: :class:`<TestToWorkItemLinks> <test.v4_1.models.TestToWorkItemLinks>` 2240 """ 2241 route_values = {} 2242 if project is not None: 2243 route_values['project'] = self._serialize.url('project', project, 'str') 2244 query_parameters = {} 2245 if test_name is not None: 2246 query_parameters['testName'] = self._serialize.query('test_name', test_name, 'str') 2247 response = self._send(http_method='POST', 2248 location_id='7b0bdee3-a354-47f9-a42c-89018d7808d5', 2249 version='4.1-preview.1', 2250 route_values=route_values, 2251 query_parameters=query_parameters) 2252 return self._deserialize('TestToWorkItemLinks', response) 2253 2254 def query_test_result_work_items(self, project, work_item_category, automated_test_name=None, test_case_id=None, max_complete_date=None, days=None, work_item_count=None): 2255 """QueryTestResultWorkItems. 2256 [Preview API] 2257 :param str project: Project ID or project name 2258 :param str work_item_category: 2259 :param str automated_test_name: 2260 :param int test_case_id: 2261 :param datetime max_complete_date: 2262 :param int days: 2263 :param int work_item_count: 2264 :rtype: [WorkItemReference] 2265 """ 2266 route_values = {} 2267 if project is not None: 2268 route_values['project'] = self._serialize.url('project', project, 'str') 2269 query_parameters = {} 2270 if work_item_category is not None: 2271 query_parameters['workItemCategory'] = self._serialize.query('work_item_category', work_item_category, 'str') 2272 if automated_test_name is not None: 2273 query_parameters['automatedTestName'] = self._serialize.query('automated_test_name', automated_test_name, 'str') 2274 if test_case_id is not None: 2275 query_parameters['testCaseId'] = self._serialize.query('test_case_id', test_case_id, 'int') 2276 if max_complete_date is not None: 2277 query_parameters['maxCompleteDate'] = self._serialize.query('max_complete_date', max_complete_date, 'iso-8601') 2278 if days is not None: 2279 query_parameters['days'] = self._serialize.query('days', days, 'int') 2280 if work_item_count is not None: 2281 query_parameters['$workItemCount'] = self._serialize.query('work_item_count', work_item_count, 'int') 2282 response = self._send(http_method='GET', 2283 location_id='926ff5dc-137f-45f0-bd51-9412fa9810ce', 2284 version='4.1-preview.1', 2285 route_values=route_values, 2286 query_parameters=query_parameters) 2287 return self._deserialize('[WorkItemReference]', self._unwrap_collection(response)) 2288 2289