cukerail 0.5.0 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fcb1e0a9b7c38f50b8804df39b29e0157077591c
4
- data.tar.gz: fe105c55011ce966dd6105019bce6d0b9d33824b
3
+ metadata.gz: bcf11c201ebb1d8a3983d0bf8f80ea5601a8f8d1
4
+ data.tar.gz: 449e790155052adc1014ecd84fc9ebcffbef8ab5
5
5
  SHA512:
6
- metadata.gz: 0482e90c13c1e1ac3403c4b531a48a59a5863b15b6a7ed007b6676a3092f793bf991f6bb3310156a75a4d22f00d6ae40fd65ed138f138adde1ffd6b077445268
7
- data.tar.gz: bdfd582e2d35f50decab8e2dd35e948a376b6f36af968934741bc43c2fcb23532408d387d6c74b637eaf0c98519b40e2fbf1bb9181a9f8059ba4e8e990bf8b55
6
+ metadata.gz: 0422b5e13cb506b90f6caaad39065a215fb5139c69c06029de08df2fa68084f9ddb918ee0a6430a03023d5a79760a8e32fc37fffdfabb089d770e87a62bc3464
7
+ data.tar.gz: 2867d379b4c42b7bd9640fec0cfc4b70cd9a2f6025a8a33da541d10e6207a5d62c6efa1327b5fd582c43bb5a92284223ee00eb1ce8558976197afb023cc78eb5
data/cukerail.gemspec CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.require_paths = ["lib"]
22
22
 
23
23
  spec.add_runtime_dependency "cucumber", "~> 2.3.2"
24
+ spec.add_runtime_dependency 'retriable', '~> 2.1'
24
25
 
25
26
  spec.add_development_dependency "bundler", "~> 1.6"
26
27
  spec.add_development_dependency "rake","~>10.4"
@@ -13,99 +13,101 @@ require 'net/http'
13
13
  require 'net/https'
14
14
  require 'uri'
15
15
  require 'json'
16
-
16
+ require 'retriable'
17
17
  module TestRail
18
- class APIClient
19
- @url = ''
20
- @user = ''
21
- @password = ''
18
+ class APIClient
19
+ @url = ''
20
+ @user = ''
21
+ @password = ''
22
22
 
23
- attr_accessor :user
24
- attr_accessor :password
23
+ attr_accessor :user
24
+ attr_accessor :password
25
25
 
26
- def initialize(base_url,user,password,proxy_url=nil,proxy_port=nil)
27
- if !base_url.match(/\/$/)
28
- base_url += '/'
29
- end
30
- @url = base_url + 'index.php?/api/v2/'
26
+ def initialize(base_url,user,password,proxy_url=nil,proxy_port=nil)
27
+ if !base_url.match(/\/$/)
28
+ base_url += '/'
29
+ end
30
+ @url = base_url + 'index.php?/api/v2/'
31
31
  @user ||=user
32
32
  @password ||=password
33
- @proxy_url ||= proxy_url
34
- @proxy_port ||= proxy_port
35
- end
33
+ @proxy_url ||= proxy_url
34
+ @proxy_port ||= proxy_port
35
+ end
36
+
37
+ #
38
+ # Send Get
39
+ #
40
+ # Issues a GET request (read) against the API and returns the result
41
+ # (as Ruby hash).
42
+ #
43
+ # Arguments:
44
+ #
45
+ # uri The API method to call including parameters
46
+ # (e.g. get_case/1)
47
+ #
48
+ def send_get(uri)
49
+ _send_request('GET', uri, nil)
50
+ end
36
51
 
37
- #
38
- # Send Get
39
- #
40
- # Issues a GET request (read) against the API and returns the result
41
- # (as Ruby hash).
42
- #
43
- # Arguments:
44
- #
45
- # uri The API method to call including parameters
46
- # (e.g. get_case/1)
47
- #
48
- def send_get(uri)
49
- _send_request('GET', uri, nil)
50
- end
52
+ #
53
+ # Send POST
54
+ #
55
+ # Issues a POST request (write) against the API and returns the result
56
+ # (as Ruby hash).
57
+ #
58
+ # Arguments:
59
+ #
60
+ # uri The API method to call including parameters
61
+ # (e.g. add_case/1)
62
+ # data The data to submit as part of the request (as
63
+ # Ruby hash, strings must be UTF-8 encoded)
64
+ #
65
+ def send_post(uri, data)
66
+ _send_request('POST', uri, data)
67
+ end
51
68
 
52
- #
53
- # Send POST
54
- #
55
- # Issues a POST request (write) against the API and returns the result
56
- # (as Ruby hash).
57
- #
58
- # Arguments:
59
- #
60
- # uri The API method to call including parameters
61
- # (e.g. add_case/1)
62
- # data The data to submit as part of the request (as
63
- # Ruby hash, strings must be UTF-8 encoded)
64
- #
65
- def send_post(uri, data)
66
- _send_request('POST', uri, data)
67
- end
69
+ private
70
+ def _send_request(method, uri, data)
71
+ Retriable.retriable multiplier: 3 do
72
+ url = URI.parse(@url + uri)
73
+ if method == 'POST'
74
+ request = Net::HTTP::Post.new(url.path + '?' + url.query)
75
+ request.body = JSON.dump(data)
76
+ else
77
+ request = Net::HTTP::Get.new(url.path + '?' + url.query)
78
+ end
79
+ request.basic_auth(@user, @password)
80
+ request.add_field('Content-Type', 'application/json')
68
81
 
69
- private
70
- def _send_request(method, uri, data)
71
- url = URI.parse(@url + uri)
72
- if method == 'POST'
73
- request = Net::HTTP::Post.new(url.path + '?' + url.query)
74
- request.body = JSON.dump(data)
75
- else
76
- request = Net::HTTP::Get.new(url.path + '?' + url.query)
77
- end
78
- request.basic_auth(@user, @password)
79
- request.add_field('Content-Type', 'application/json')
82
+ conn = Net::HTTP.new(url.host, url.port,@proxy_url,@proxy_port)
80
83
 
81
- conn = Net::HTTP.new(url.host, url.port,@proxy_url,@proxy_port)
84
+ if url.scheme == 'https'
85
+ conn.use_ssl = true
86
+ conn.verify_mode = OpenSSL::SSL::VERIFY_NONE
87
+ end
88
+ response = conn.request(request)
82
89
 
83
- if url.scheme == 'https'
84
- conn.use_ssl = true
85
- conn.verify_mode = OpenSSL::SSL::VERIFY_NONE
86
- end
87
- response = conn.request(request)
90
+ if response.body && !response.body.empty?
91
+ result = JSON.parse(response.body)
92
+ else
93
+ result = {}
94
+ end
88
95
 
89
- if response.body && !response.body.empty?
90
- result = JSON.parse(response.body)
91
- else
92
- result = {}
93
- end
96
+ if response.code != '200'
97
+ if result && result.key?('error')
98
+ error = '"' + result['error'] + '"'
99
+ else
100
+ error = 'No additional error message received'
101
+ end
102
+ raise APIError.new('TestRail API returned HTTP %s (%s)' %
103
+ [response.code, error])
104
+ end
94
105
 
95
- if response.code != '200'
96
- if result && result.key?('error')
97
- error = '"' + result['error'] + '"'
98
- else
99
- error = 'No additional error message received'
100
- end
101
- raise APIError.new('TestRail API returned HTTP %s (%s)' %
102
- [response.code, error])
103
- end
104
-
105
- result
106
- end
107
- end
106
+ result
107
+ end
108
+ end
109
+ end
108
110
 
109
- class APIError < StandardError
110
- end
111
+ class APIError < StandardError
112
+ end
111
113
  end
@@ -1,3 +1,3 @@
1
1
  module Cukerail
2
- VERSION = "0.5.0"
2
+ VERSION = "0.5.2"
3
3
  end
@@ -1,5 +1,5 @@
1
1
  require_relative '../json_sender'
2
- desc 'load a json results file into a test suite'
2
+ desc 'load a json results file into a test suite, JSON=filename'
3
3
  task :load_to_suite do
4
4
  raise 'You must have JSON=filename on the command line' unless ENV['JSON']
5
5
  json_sender =Cukerail::JsonSender.new(ENV['JSON'])
@@ -20,7 +20,7 @@ task :load_to_suite do
20
20
  end
21
21
  end
22
22
 
23
- desc 'load a json results file into a test run'
23
+ desc 'load a json results file into a test run TESTRUN=run_number JSON=filename'
24
24
  task :load_to_test_run do
25
25
  raise 'You must have TESTRUN=testrun_number on the command line' unless ENV['TESTRUN']
26
26
  json_sender =Cukerail::JsonSender.new(ENV['JSON'])
@@ -35,7 +35,7 @@ task :load_to_test_run do
35
35
  end
36
36
  end
37
37
 
38
- desc "remove cases from a test run that are aren't in the json results"
38
+ desc "remove cases from a test run that are aren't in the json results, TESTRUN=run_number JSON=filename"
39
39
  task :remove_from_test_run do
40
40
  raise 'You must have TESTRUN=testrun_number on the command line' unless ENV['TESTRUN']
41
41
  raise 'You must have JSON=filename on the command line' unless ENV['JSON']
@@ -49,11 +49,11 @@ task :remove_from_test_run do
49
49
  json_sender.remove_all_except_these_cases_from_testrun(testcase_ids,ENV['TESTRUN'].to_i)
50
50
  end
51
51
 
52
- desc "match test run cases to json results file"
52
+ desc "match test run cases to json results file,"
53
53
  task match_to_test_run: [:remove_from_test_run,:load_to_test_run] do
54
54
  end
55
55
 
56
- desc "remove cases from a test suite that aren't in the json results"
56
+ desc "remove cases from a test suite that aren't in the json results, TESTRUN=run_number JSON=filename"
57
57
  task :remove_from_test_suite do
58
58
  raise 'You must have JSON=filename on the command line' unless ENV['JSON']
59
59
  json_sender =Cukerail::JsonSender.new(ENV['JSON'])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cukerail
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Small
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-04 00:00:00.000000000 Z
11
+ date: 2016-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 2.3.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: retriable
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.1'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement