apirunner 0.1.9 → 0.1.10

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 CHANGED
@@ -1 +1 @@
1
- 0.1.9
1
+ 0.1.10
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.9"
8
+ s.version = "0.1.10"
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"]
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  - name: 'Create new User'
3
3
  request:
4
+ headers:
5
+ Content-Type: 'application/json'
4
6
  path: '/users/duffyduck'
5
7
  method: 'PUT'
6
8
  body:
@@ -42,6 +44,8 @@
42
44
  fsk: "18"
43
45
  - name: 'Update existing User - Update watchlist'
44
46
  request:
47
+ headers:
48
+ Content-Type: 'application/json'
45
49
  path: '/users/duffyduck/watchlist'
46
50
  method: 'PUT'
47
51
  body:
@@ -52,6 +56,8 @@
52
56
  body:
53
57
  - name: 'Check User FSK,Watchlist'
54
58
  request:
59
+ headers:
60
+ Content-Type: 'application/json'
55
61
  path: '/users/duffyduck'
56
62
  method: 'GET'
57
63
  response_expectation:
@@ -75,6 +81,8 @@
75
81
  m79: 2.5
76
82
  - name: 'Set 10 Ratings'
77
83
  request:
84
+ headers:
85
+ Content-Type: 'application/json'
78
86
  path: '/users/duffyduck/ratings'
79
87
  method: 'PUT'
80
88
  body:
@@ -92,6 +100,8 @@
92
100
  Last-Modified: /.*/
93
101
  - name: 'Check User Ratings Update'
94
102
  request:
103
+ headers:
104
+ Content-Type: 'application/json'
95
105
  path: '/users/duffyduck'
96
106
  method: 'GET'
97
107
  response_expectation:
data/lib/api_runner.rb CHANGED
@@ -38,7 +38,7 @@ class ApiRunner
38
38
  # runs all testcases that are provided by the testclass an fills errors if there are any
39
39
  def run_tests
40
40
  @spec.each do |test_case|
41
- response = send_request(test_case['request']['method'].downcase.to_sym, test_case['request']['path'], test_case['request']['body'])
41
+ response = send_request(test_case['request']['method'].downcase.to_sym, test_case['request']['path'], test_case['request']['headers'], test_case['request']['body'])
42
42
  @expectation.test_types.each do |test_type|
43
43
  result = @expectation.check(test_type, response, test_case)
44
44
  if not result.succeeded
@@ -56,8 +56,8 @@ class ApiRunner
56
56
  end
57
57
 
58
58
  # sends http request and fetches response using the given http client
59
- def send_request(method, uri, data)
60
- @http_client.send_request(method, uri, data)
59
+ def send_request(method, uri, headers, data)
60
+ @http_client.send_request(method, uri, headers, data)
61
61
  end
62
62
 
63
63
  # builds target uri from base uri generated of host port and namespace as well as the ressource path
@@ -68,7 +68,7 @@ class ApiRunner
68
68
  # returns true if server is available
69
69
  def server_is_available?
70
70
  return true
71
- !@http_client.send_request(:get, "#{@configuration.protocol}://#{@configuration.host}:#{@configuration.port}", {:timeout => 5}).nil?
71
+ !@http_client.send_request(:get, "#{@configuration.protocol}://#{@configuration.host}:#{@configuration.port}", nil, {:timeout => 5}).nil?
72
72
  end
73
73
 
74
74
  # loads environment config data from yaml file
@@ -31,7 +31,6 @@ class ExpectationMatcher
31
31
  end
32
32
 
33
33
  # checks the format of the given data of JSON conformity
34
- # returns a structure containing return value and error if there is one
35
34
  def response_body_format(response, testcase)
36
35
  result_struct = Struct.new(:succeeded, :error)
37
36
  results = result_struct.new(:succeeded => true, :error => nil)
data/lib/http_client.rb CHANGED
@@ -8,8 +8,8 @@ class HttpClient
8
8
  @namespace = namespace
9
9
  end
10
10
 
11
- def send_request(method, resource, data=nil)
12
- build_response(self.send(method.to_s.downcase, resource, data))
11
+ def send_request(method, resource, headers=nil, data=nil)
12
+ build_response(self.send(method.to_s.downcase, headers, resource, data))
13
13
  end
14
14
 
15
15
  protected
@@ -26,28 +26,27 @@ class HttpClient
26
26
  response
27
27
  end
28
28
 
29
- def get(resource, params)
30
- request = Net::HTTP::Get.new(resource_path(resource), initheader = {'Content-Type' =>'application/json'})
31
- response = @http.request(request)
32
- return response
29
+ def get(headers, resource, params)
30
+ request = Net::HTTP::Get.new(resource_path(resource), initheader = headers)
31
+ @http.request(request)
33
32
  end
34
33
 
35
- def put(resource, data)
36
- request = Net::HTTP::Put.new(resource_path(resource), initheader = {'Content-Type' =>'application/json'})
34
+ def put(headers, resource, data)
35
+ request = Net::HTTP::Put.new(resource_path(resource), initheader = headers)
37
36
  request.body = data.to_json
38
- response = @http.request(request)
37
+ @http.request(request)
39
38
  end
40
39
 
41
- def post(resource, data)
42
- request = Net::HTTP::Post.new(resource_path(resource), initheader = {'Content-Type' =>'application/json'})
40
+ def post(headers, resource, data)
41
+ request = Net::HTTP::Post.new(resource_path(resource), initheader = headers)
43
42
  request.body = data.to_json
44
- response = @http.request(request)
43
+ @http.request(request)
45
44
  end
46
45
 
47
46
 
48
- def delete(resource, params)
49
- request = Net::HTTP::Delete.new(resource_path(resource), initheader = {'Content-Type' =>'application/json'})
50
- response = @http.request(request)
47
+ def delete(headers, resource, params)
48
+ request = Net::HTTP::Delete.new(resource_path(resource), initheader = headers)
49
+ @http.request(request)
51
50
  end
52
51
 
53
52
  def resource_path(resource)
@@ -55,29 +54,3 @@ class HttpClient
55
54
  end
56
55
  end
57
56
 
58
-
59
- class HttPartyClient
60
- require 'httparty'
61
- include HTTParty
62
-
63
- # sends http request with given method, uri and data and returns servers response
64
- def send_request(method, uri, data=nil)
65
- options = { :body => data.to_json, :format => :json }
66
- build_response(self.class.send(method, uri, options))
67
- end
68
-
69
- protected
70
-
71
- # returns struct containing response.code, headers, body and message
72
- # this is only for easily interfaceing another http client
73
- def build_response(raw_response)
74
- response_struct = Struct.new(:code, :message, :headers, :body)
75
- response = response_struct.new
76
- response.code = raw_response.code
77
- response.message = raw_response.message
78
- response.headers = raw_response.headers
79
- response.body = raw_response.body
80
- response
81
- end
82
- end
83
-
data/lib/result.rb CHANGED
@@ -45,16 +45,22 @@ class Result
45
45
 
46
46
  # yields the verbose error messages
47
47
  def be_verbose(index)
48
+ debugger
48
49
  puts "\n#{result_case} (#{index+1}) - \"#{@testcase['name']}\""
49
50
  puts @error_message
50
- puts (" More more more verbosity\n")
51
- puts (" request method: #{@testcase['request']['method']}")
52
- puts (" resource path: #{@testcase['request']['path']}")
53
- puts (" request headers: #{@testcase['request']['headers']}")
54
- puts (" JSON body sent: #{@testcase['request']['body']}")
55
- puts (" response status code: #{@testcase['response_expectation']['status_code']}")
56
- puts (" response headers: #{@testcase['response_expectation']['headers']}")
57
- puts (" response body: #{@testcase['response_expectation']['body']}")
51
+ puts(" More more more verbosity\n")
52
+ puts(" request method: #{@testcase['request']['method']}")
53
+ puts(" resource path: #{@testcase['request']['path']}")
54
+ puts(" request headers: #{@testcase['request']['headers']}")
55
+ puts(" JSON body sent: #{@testcase['request']['body']}")
56
+ puts(" expectation:")
57
+ puts(" response status code: #{@testcase['response_expectation']['status_code']}")
58
+ puts(" response headers: #{@testcase['response_expectation']['headers']}")
59
+ puts(" response body: #{@testcase['response_expectation']['body']}")
60
+ puts(" result:")
61
+ puts(" response status code: #{@response.code}")
62
+ puts(" response headers: #{@response.headers}")
63
+ puts(" repsonse body: #{JSON.parse(@response.body)}")
58
64
  end
59
65
 
60
66
  # returns the result case for interpolation in the output message header
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 9
9
- version: 0.1.9
8
+ - 10
9
+ version: 0.1.10
10
10
  platform: ruby
11
11
  authors:
12
12
  - jan@moviepilot.com
@@ -265,7 +265,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
265
265
  requirements:
266
266
  - - ">="
267
267
  - !ruby/object:Gem::Version
268
- hash: -2943715373765808099
268
+ hash: -1888087046839663550
269
269
  segments:
270
270
  - 0
271
271
  version: "0"