testrail-client 0.2.0 → 0.3.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e1874bd4d07830db69ca5be41ffd40cf8342b3b0e5ed72852cce04eded71ad9c
4
- data.tar.gz: a70994ff627bf68a499a897f1d0f0e72b4276bfe1b8b8791e9dd67947dfc868e
3
+ metadata.gz: 600d1c3b6b2e5058e2196e9f08a2523d3913d77a13595c5a117e709f8a8c1c56
4
+ data.tar.gz: b88f0fd458d409009266e43047db6bc5036b50373212e594f58b9ba0eb10b765
5
5
  SHA512:
6
- metadata.gz: da717d9b3481a2ed35c687de158c8cc01fd3783995c0dc766517181347e4a0bcb2c1a520ca0d4996ecc5d7ec4b62e10ae6fac09c64064ef6ad8fe7edd24b58a9
7
- data.tar.gz: 4594c8d5ce51f433c8d9b4adf9facda3744d2ff9da42e52691dc16b898f9fc3177aa64ce00da4044ad2e72b6d139c6c62cb74da5bf4d308ef51e93974ebdf205
6
+ metadata.gz: 8fdb3924eb8369cb731ef06c18f75ad4f9079d647d1d0d26fadafd2c30a322fcd7be1ffc5aecc9b9989cc6da7e2595259b93ce561aaf27e1df57f88773ee73a4
7
+ data.tar.gz: dbe6bb4c9e082244368273537153ea52215fcf5f2088859214a56fdc1230448d43b52545d7d4fa9e9756a747270ba9a97c212e9404587cd0464599964cdbd0e7
data/.gitignore CHANGED
@@ -10,3 +10,6 @@
10
10
 
11
11
  # rspec failure tracking
12
12
  .rspec_status
13
+
14
+ # ignore testrail login for test
15
+ spec/testrail/testrail.yaml
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ sudo: false
3
+ language: ruby
4
+ cache: bundler
5
+ rvm:
6
+ - 2.6.3
7
+ before_install: gem install bundler -v 1.17.3
data/Gemfile.lock CHANGED
@@ -1,60 +1,64 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- testrail-client (0.2.0)
4
+ testrail-client (0.3.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- addressable (2.6.0)
10
- public_suffix (>= 2.0.2, < 4.0)
11
- crack (0.4.3)
12
- safe_yaml (~> 1.0.0)
13
- diff-lcs (1.3)
14
- hashdiff (1.0.0)
15
- mustermann (1.0.3)
16
- public_suffix (3.1.1)
17
- rack (2.0.7)
18
- rack-protection (2.0.5)
9
+ addressable (2.7.0)
10
+ public_suffix (>= 2.0.2, < 5.0)
11
+ config_this (0.1.0)
12
+ crack (0.4.5)
13
+ rexml
14
+ diff-lcs (1.4.4)
15
+ hashdiff (1.0.1)
16
+ mustermann (1.1.1)
17
+ ruby2_keywords (~> 0.0.1)
18
+ public_suffix (4.0.6)
19
+ rack (2.2.3)
20
+ rack-protection (2.1.0)
19
21
  rack
20
- rake (10.5.0)
21
- rspec (3.8.0)
22
- rspec-core (~> 3.8.0)
23
- rspec-expectations (~> 3.8.0)
24
- rspec-mocks (~> 3.8.0)
25
- rspec-core (3.8.2)
26
- rspec-support (~> 3.8.0)
27
- rspec-expectations (3.8.4)
22
+ rake (13.0.3)
23
+ rexml (3.2.4)
24
+ rspec (3.10.0)
25
+ rspec-core (~> 3.10.0)
26
+ rspec-expectations (~> 3.10.0)
27
+ rspec-mocks (~> 3.10.0)
28
+ rspec-core (3.10.1)
29
+ rspec-support (~> 3.10.0)
30
+ rspec-expectations (3.10.1)
28
31
  diff-lcs (>= 1.2.0, < 2.0)
29
- rspec-support (~> 3.8.0)
30
- rspec-mocks (3.8.1)
32
+ rspec-support (~> 3.10.0)
33
+ rspec-mocks (3.10.2)
31
34
  diff-lcs (>= 1.2.0, < 2.0)
32
- rspec-support (~> 3.8.0)
33
- rspec-support (3.8.2)
34
- safe_yaml (1.0.5)
35
- sinatra (2.0.5)
35
+ rspec-support (~> 3.10.0)
36
+ rspec-support (3.10.2)
37
+ ruby2_keywords (0.0.4)
38
+ sinatra (2.1.0)
36
39
  mustermann (~> 1.0)
37
- rack (~> 2.0)
38
- rack-protection (= 2.0.5)
40
+ rack (~> 2.2)
41
+ rack-protection (= 2.1.0)
39
42
  tilt (~> 2.0)
40
- tilt (2.0.9)
41
- webmock (3.6.2)
43
+ tilt (2.0.10)
44
+ webmock (3.12.0)
42
45
  addressable (>= 2.3.6)
43
46
  crack (>= 0.3.2)
44
47
  hashdiff (>= 0.4.0, < 2.0.0)
45
- yard (0.9.20)
48
+ yard (0.9.26)
46
49
 
47
50
  PLATFORMS
48
51
  ruby
49
52
 
50
53
  DEPENDENCIES
51
- bundler (~> 1.17)
52
- rake (~> 10.0)
53
- rspec (~> 3.0)
54
- sinatra (~> 2.0.5)
54
+ bundler
55
+ config_this
56
+ rake
57
+ rspec
58
+ sinatra
55
59
  testrail-client!
56
- webmock (~> 3.6.2)
57
- yard (~> 0.9.2)
60
+ webmock
61
+ yard
58
62
 
59
63
  BUNDLED WITH
60
- 1.17.3
64
+ 2.2.20
data/lib/testrail/api.rb CHANGED
@@ -14,13 +14,25 @@ module Testrail
14
14
  id = x if x.is_a? Integer #if Integer it is an ID
15
15
  opts = x if x.is_a? Hash #if Hash it is an options array
16
16
  opts ||= y #if opts not set, take second arg
17
- case m
18
- when /get/
19
- send_get("#{m}/#{id}&#{_param_stringify(opts)}")
20
- when /add_attachment/
21
- send_post("#{m}/#{id}",opts.to_a)
22
- else
23
- send_post("#{m}/#{id}",opts)
17
+ begin
18
+ case m
19
+ when /get/
20
+ send_get("#{m}/#{id}&#{_param_stringify(opts)}")
21
+ when /add_attachment/
22
+ send_post("#{m}/#{id}",opts.to_a)
23
+ else
24
+ send_post("#{m}/#{id}",opts)
25
+ end
26
+ rescue Testrail::Client::APIError => error
27
+ if error.message.include? "API Rate"
28
+ time_to_wait = 60
29
+ STDERR.puts("Hit Testrail\'s API rate Limits, Sleeing #{time_to_wait} seconds")
30
+ sleep(time_to_wait)
31
+ STDERR.puts("Retrying #{m} with #{args}")
32
+ retry
33
+ else
34
+ raise error
35
+ end
24
36
  end
25
37
  end
26
38
  # Stringify parameters for GET requests
@@ -18,18 +18,19 @@ module Testrail
18
18
  attr_accessor :password
19
19
  # Initialize Client
20
20
  # @param base_url [String] Your Testrail URL
21
- def initialize(base_url)
21
+ def initialize(base_url, beta=false)
22
22
  if !base_url.match(/\/$/)
23
23
  base_url += '/'
24
24
  end
25
25
  @url = base_url + 'index.php?/api/v2/'
26
26
  @content_type = "application/json"
27
+ @beta = beta
27
28
  end
28
29
  # send GET to uri
29
30
  # @param uri [String] Test rail API path
30
31
  # @return [Hash] Response from testrail API
31
32
  def send_get(uri)
32
- request = _setup_request("GET",uri)
33
+ request = _setup_request("GET",uri)
33
34
  _send_request(request)
34
35
  end
35
36
  # send POST to uri
@@ -56,6 +57,7 @@ module Testrail
56
57
  request.body = JSON.dump(data) if data.is_a? Hash
57
58
  request.set_form data, 'multipart/form-data' if data.is_a? Array
58
59
  request.basic_auth(@user, @password)
60
+ request.add_field('x-api-ident', "beta") if @beta
59
61
  return request
60
62
  end
61
63
 
@@ -1,6 +1,6 @@
1
1
  module Testrail
2
2
  module Client
3
3
  # Gem version
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.1"
5
5
  end
6
6
  end
@@ -24,11 +24,12 @@ Gem::Specification.new do |spec|
24
24
  spec.require_paths = ["lib"]
25
25
 
26
26
  spec.required_ruby_version = '>= 2.6.3'
27
- spec.add_development_dependency "bundler", "~> 1.17"
28
- spec.add_development_dependency "rake", "~> 10.0"
29
- spec.add_development_dependency "rspec", "~> 3.0"
30
- spec.add_development_dependency "sinatra", "~> 2.0.5"
31
- spec.add_development_dependency 'webmock', "~> 3.6.2"
32
- spec.add_development_dependency 'yard', "~> 0.9.2"
27
+ spec.add_development_dependency "bundler"
28
+ spec.add_development_dependency "rake"
29
+ spec.add_development_dependency "rspec"
30
+ spec.add_development_dependency "sinatra"
31
+ spec.add_development_dependency 'webmock'
32
+ spec.add_development_dependency 'yard'
33
+ spec.add_development_dependency 'config_this'
33
34
 
34
35
  end
metadata CHANGED
@@ -1,99 +1,113 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: testrail-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edmundo Sanchez
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-08-13 00:00:00.000000000 Z
11
+ date: 2021-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.17'
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '1.17'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '3.0'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: sinatra
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 2.0.5
61
+ version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 2.0.5
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: webmock
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 3.6.2
75
+ version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 3.6.2
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: yard
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 0.9.2
89
+ version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: 0.9.2
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: config_this
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  description: An easy to mantain gem that wrapps the v2 testrail API
98
112
  email:
99
113
  - zomundo@gmail.com
@@ -103,6 +117,7 @@ extra_rdoc_files: []
103
117
  files:
104
118
  - ".gitignore"
105
119
  - ".rspec"
120
+ - ".travis.yml"
106
121
  - Gemfile
107
122
  - Gemfile.lock
108
123
  - LICENSE.txt
@@ -118,7 +133,7 @@ homepage: https://github.com/mundo03/testrails-client-ruby
118
133
  licenses:
119
134
  - MIT
120
135
  metadata: {}
121
- post_install_message:
136
+ post_install_message:
122
137
  rdoc_options: []
123
138
  require_paths:
124
139
  - lib
@@ -133,8 +148,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
148
  - !ruby/object:Gem::Version
134
149
  version: '0'
135
150
  requirements: []
136
- rubygems_version: 3.0.4
137
- signing_key:
151
+ rubygems_version: 3.2.15
152
+ signing_key:
138
153
  specification_version: 4
139
154
  summary: Another Client wrapper in Ruby for TestRail API (v2)
140
155
  test_files: []