apirunner 0.3.6 → 0.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/apirunner.gemspec +2 -1
- data/lib/http_client.rb +0 -1
- data/lib/plugins/plug05_response_time_checker.rb +19 -0
- data/spec/http_client_spec.rb +7 -5
- metadata +4 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.7
|
data/apirunner.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{apirunner}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.7"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["jan@moviepilot.com"]
|
@@ -51,6 +51,7 @@ Gem::Specification.new do |s|
|
|
51
51
|
"lib/plugins/plug02_response_code_checker.rb",
|
52
52
|
"lib/plugins/plug03_response_header_checker.rb",
|
53
53
|
"lib/plugins/plug04_response_body_checker.rb",
|
54
|
+
"lib/plugins/plug05_response_time_checker.rb",
|
54
55
|
"lib/result.rb",
|
55
56
|
"lib/string_ext.rb",
|
56
57
|
"lib/tasks/api.rake",
|
data/lib/http_client.rb
CHANGED
@@ -21,7 +21,6 @@ class HttpClient
|
|
21
21
|
# returns struct containing response.code, headers, body and message
|
22
22
|
# this is only for easily interfaceing another http client
|
23
23
|
def build_response(raw_response, runtime, method, resource, params)
|
24
|
-
end_time = Time.now.usec
|
25
24
|
response_struct = Struct.new(:code, :message, :headers, :body, :runtime, :fully_qualified_path)
|
26
25
|
response = response_struct.new
|
27
26
|
response.code = raw_response.code
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class ResponseTimeChecker < Checker
|
2
|
+
|
3
|
+
# checks if the request response cycle exceeded the maximum expected time
|
4
|
+
def check
|
5
|
+
result = Result.new(@testcase, @response)
|
6
|
+
begin
|
7
|
+
if not (@testcase.response_expectation['runtime'].nil? || @response.runtime.to_f <= @testcase.response_expectation['runtime'].to_f)
|
8
|
+
result.succeeded = false
|
9
|
+
result.error_message = " expected request->response runtime was #{@testcase.response_expectation['runtime']}, real runtime was #{@response.runtime}"
|
10
|
+
end
|
11
|
+
rescue Exception => e
|
12
|
+
result.succeeded = false
|
13
|
+
result.error_message = " unexpected error while parsing testcase/response. Check your testcase format!"
|
14
|
+
result.error_message = "\n\nException occured: #{e}"
|
15
|
+
end
|
16
|
+
result
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
data/spec/http_client_spec.rb
CHANGED
@@ -30,16 +30,18 @@ describe 'http_client' do
|
|
30
30
|
end
|
31
31
|
describe 'build_response' do
|
32
32
|
it 'should return a struct consisting of 4 symbols: :code, :message, :headers and :body with right types' do
|
33
|
-
raw_response_struct = Struct.new(:code, :message, :headers, :body)
|
33
|
+
raw_response_struct = Struct.new(:code, :message, :headers, :body, :runtime, :fully_qualified_path)
|
34
34
|
response = raw_response_struct.new
|
35
35
|
response.code = 404
|
36
36
|
response.message = "Hi Duffy Duck"
|
37
37
|
response.headers = { :daisy => "duck" }
|
38
38
|
response.body = { :duffy => "duck" }
|
39
|
-
|
40
|
-
|
41
|
-
@http_client.send(:build_response, response
|
42
|
-
@http_client.send(:build_response, response
|
39
|
+
response.runtime = 0.123456789
|
40
|
+
response.fully_qualified_path = "/path/to/resource"
|
41
|
+
@http_client.send(:build_response, response, 0.0, "GET", "resource", {}).code.should_not be_nil
|
42
|
+
@http_client.send(:build_response, response, 0.0, "GET", "resource", {}).message.should_not be_nil
|
43
|
+
@http_client.send(:build_response, response, 0.0, "GET", "resource", {}).body.should == {:duffy => "duck"}
|
44
|
+
@http_client.send(:build_response, response, 0.0, "GET", "resource", {}).headers.should == {"daisy" => "duck"}
|
43
45
|
end
|
44
46
|
end
|
45
47
|
describe "resource_path" do
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
version: 0.3.
|
8
|
+
- 7
|
9
|
+
version: 0.3.7
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- jan@moviepilot.com
|
@@ -240,6 +240,7 @@ files:
|
|
240
240
|
- lib/plugins/plug02_response_code_checker.rb
|
241
241
|
- lib/plugins/plug03_response_header_checker.rb
|
242
242
|
- lib/plugins/plug04_response_body_checker.rb
|
243
|
+
- lib/plugins/plug05_response_time_checker.rb
|
243
244
|
- lib/result.rb
|
244
245
|
- lib/string_ext.rb
|
245
246
|
- lib/tasks/api.rake
|
@@ -266,7 +267,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
266
267
|
requirements:
|
267
268
|
- - ">="
|
268
269
|
- !ruby/object:Gem::Version
|
269
|
-
hash:
|
270
|
+
hash: 3590479262244463849
|
270
271
|
segments:
|
271
272
|
- 0
|
272
273
|
version: "0"
|