apirunner 0.1.4 → 0.1.5
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/changelog.txt +7 -0
- data/lib/api_runner.rb +3 -3
- data/lib/expectation_matcher.rb +2 -3
- data/spec/api_runner_spec.rb +7 -2
- data/spec/expectation_matcher_spec.rb +0 -1
- metadata +4 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.5
|
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.1.
|
8
|
+
s.version = "0.1.5"
|
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"]
|
@@ -26,6 +26,7 @@ Gem::Specification.new do |s|
|
|
26
26
|
"Rakefile",
|
27
27
|
"VERSION",
|
28
28
|
"apirunner.gemspec",
|
29
|
+
"changelog.txt",
|
29
30
|
"examples/config/api_runner.yml",
|
30
31
|
"examples/test/api_runner/001_create_ressource.yml",
|
31
32
|
"examples/test/api_runner/999_delete_ressource.yml",
|
data/changelog.txt
ADDED
data/lib/api_runner.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
class ApiRunner
|
2
2
|
require 'yaml'
|
3
|
+
require 'JSON'
|
3
4
|
require 'expectation_matcher'
|
4
5
|
require 'http_client'
|
5
6
|
|
6
|
-
|
7
7
|
CONFIG_FILE = "config/api_runner.yml"
|
8
8
|
SPEC_PATH = "test/api_runner/"
|
9
9
|
EXCLUDES_FILE = "test/api_runner/excludes.yml"
|
@@ -24,9 +24,9 @@ class ApiRunner
|
|
24
24
|
def run
|
25
25
|
if server_is_available?
|
26
26
|
run_tests
|
27
|
-
@errors.
|
27
|
+
@errors.each_with_index do |error, index|
|
28
28
|
puts("\n\nError (#{index+1}): #{error}")
|
29
|
-
end
|
29
|
+
end unless @errors.empty?
|
30
30
|
else
|
31
31
|
puts("Server #{@host} seems to be unavailable!")
|
32
32
|
end
|
data/lib/expectation_matcher.rb
CHANGED
@@ -46,8 +46,7 @@ class ExpectationMatcher
|
|
46
46
|
result_struct = Struct.new(:succeeded, :error)
|
47
47
|
results = result_struct.new(:succeeded => true, :error => nil)
|
48
48
|
|
49
|
-
|
50
|
-
testcase['response_expectation']['headers'].try(:each_pair) do |header_name, header_value|
|
49
|
+
testcase['response_expectation']['headers'].each_pair do |header_name, header_value|
|
51
50
|
if is_regex?(header_value)
|
52
51
|
if not (excluded?(header_name) or regex_matches?(header_value, response.headers[header_name]))
|
53
52
|
results.succeeded = false
|
@@ -59,7 +58,7 @@ class ExpectationMatcher
|
|
59
58
|
results.error = "testcase '#{testcase['name']}'\n expected header identifier --#{header_name}-- to match --#{header_value}--\n got --#{response.headers[header_name]}--"
|
60
59
|
end
|
61
60
|
end
|
62
|
-
end
|
61
|
+
end unless (testcase['response_expectation']['headers'].nil? or testcase['response_expectation']['headers'].empty?)
|
63
62
|
return results
|
64
63
|
end
|
65
64
|
|
data/spec/api_runner_spec.rb
CHANGED
@@ -34,9 +34,14 @@ describe 'apirunner' do
|
|
34
34
|
|
35
35
|
describe 'run_tests' do
|
36
36
|
it 'should send a request for every given testcase' do
|
37
|
-
|
37
|
+
response_struct = Struct.new(:code, :message, :headers, :body)
|
38
|
+
response = response_struct.new
|
39
|
+
response.code = 404
|
40
|
+
response.message = "Ok"
|
41
|
+
response.body = {}
|
42
|
+
response.headers = {}
|
38
43
|
@a.should_receive(:server_is_available?).and_return true
|
39
|
-
@a.should_receive(:send_request).exactly(@a.instance_variable_get(:@spec).size).times
|
44
|
+
@a.should_receive(:send_request).exactly(@a.instance_variable_get(:@spec).size).times.and_return(response)
|
40
45
|
@a.run
|
41
46
|
end
|
42
47
|
it 'should run a test for every test_type'
|
@@ -99,7 +99,6 @@ describe 'ExpectationMatcher' do
|
|
99
99
|
@response = response_struct.new
|
100
100
|
end
|
101
101
|
it 'should return a struct representing success, if one certain expected header value matches the response header' do
|
102
|
-
pending "Rails context is missing"
|
103
102
|
@response.headers = {"content-type"=>["text/html; charset=utf-8"], "cache-control"=>["no-cache"], "x-runtime"=>["0.340116"], "server"=>["WEBrick/1.3.1 (Ruby/1.9.2/2010-08-18)"], "date"=>["Tue, 21 Sep 2010 11:33:05 GMT"], "content-length"=>["149"], "connection"=>["close"], "Last-Modified" => "2010-10-01 23:23:23"}
|
104
103
|
testcase = { 'response_expectation' => { 'headers' => {"Last-Modified"=>"/.*/"} } }
|
105
104
|
@em.send(:response_headers, @response, testcase).should be_a(Struct)
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 5
|
9
|
+
version: 0.1.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- jan@moviepilot.com
|
@@ -230,6 +230,7 @@ files:
|
|
230
230
|
- Rakefile
|
231
231
|
- VERSION
|
232
232
|
- apirunner.gemspec
|
233
|
+
- changelog.txt
|
233
234
|
- examples/config/api_runner.yml
|
234
235
|
- examples/test/api_runner/001_create_ressource.yml
|
235
236
|
- examples/test/api_runner/999_delete_ressource.yml
|
@@ -262,7 +263,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
262
263
|
requirements:
|
263
264
|
- - ">="
|
264
265
|
- !ruby/object:Gem::Version
|
265
|
-
hash: -
|
266
|
+
hash: -2331822948028323562
|
266
267
|
segments:
|
267
268
|
- 0
|
268
269
|
version: "0"
|