-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathtest_optimization_api.rb
More file actions
116 lines (97 loc) · 4.41 KB
/
test_optimization_api.rb
File metadata and controls
116 lines (97 loc) · 4.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
=begin
#Datadog API V2 Collection
#Collection of all Datadog Public endpoints.
The version of the OpenAPI document: 1.0
Contact: support@datadoghq.com
Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator
Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
This product includes software developed at Datadog (https://www.datadoghq.com/).
Copyright 2020-Present Datadog, Inc.
=end
require 'cgi'
module DatadogAPIClient::V2
class TestOptimizationAPI
attr_accessor :api_client
def initialize(api_client = DatadogAPIClient::APIClient.default)
@api_client = api_client
end
# Search flaky tests.
#
# @see #search_flaky_tests_with_http_info
def search_flaky_tests(opts = {})
data, _status_code, _headers = search_flaky_tests_with_http_info(opts)
data
end
# Search flaky tests.
#
# List endpoint returning flaky tests from Flaky Test Management. Results are paginated.
#
# @param opts [Hash] the optional parameters
# @option opts [FlakyTestsSearchRequest] :body
# @return [Array<(FlakyTestsSearchResponse, Integer, Hash)>] FlakyTestsSearchResponse data, response status code and response headers
def search_flaky_tests_with_http_info(opts = {})
unstable_enabled = @api_client.config.unstable_operations["v2.search_flaky_tests".to_sym]
if unstable_enabled
@api_client.config.logger.warn format("Using unstable operation '%s'", "v2.search_flaky_tests")
else
raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.search_flaky_tests"))
end
if @api_client.config.debugging
@api_client.config.logger.debug 'Calling API: TestOptimizationAPI.search_flaky_tests ...'
end
# resource path
local_var_path = '/api/v2/test/flaky-test-management/tests'
# query parameters
query_params = opts[:query_params] || {}
# header parameters
header_params = opts[:header_params] || {}
# HTTP header 'Accept' (if needed)
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
# HTTP header 'Content-Type'
header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
# form parameters
form_params = opts[:form_params] || {}
# http body (model)
post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'body'])
# return_type
return_type = opts[:debug_return_type] || 'FlakyTestsSearchResponse'
# auth_names
auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ]
new_options = opts.merge(
:operation => :search_flaky_tests,
:header_params => header_params,
:query_params => query_params,
:form_params => form_params,
:body => post_body,
:auth_names => auth_names,
:return_type => return_type,
:api_version => "V2"
)
data, status_code, headers = @api_client.call_api(Net::HTTP::Post, local_var_path, new_options)
if @api_client.config.debugging
@api_client.config.logger.debug "API called: TestOptimizationAPI#search_flaky_tests\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
end
return data, status_code, headers
end
# Search flaky tests.
#
# Provide a paginated version of {#search_flaky_tests}, returning all items.
#
# To use it you need to use a block: search_flaky_tests_with_pagination { |item| p item }
#
# @yield [FlakyTest] Paginated items
def search_flaky_tests_with_pagination(opts = {})
api_version = "V2"
page_size = @api_client.get_attribute_from_path(opts, "body.data.attributes.page.limit", 10)
@api_client.set_attribute_from_path(api_version, opts, "body.data.attributes.page.limit", FlakyTestsSearchRequest, page_size)
while true do
response = search_flaky_tests(opts)
@api_client.get_attribute_from_path(response, "data").each { |item| yield(item) }
if @api_client.get_attribute_from_path(response, "data").length < page_size
break
end
@api_client.set_attribute_from_path(api_version, opts, "body.data.attributes.page.cursor", FlakyTestsSearchRequest, @api_client.get_attribute_from_path(response, "meta.pagination.next_page"))
end
end
end
end