cukerail 0.0.4 → 0.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8fcd892fa6b54831aae7896499dec5555b1137b7
4
- data.tar.gz: a66db8b5041c8cbc345bd6b59f7671a95c95cd97
3
+ metadata.gz: 79c5e89f98cbd32a30a5c8c31cb53b4fa08c0232
4
+ data.tar.gz: 13482906ac92bab39a3dc309353e5ffbcccc72b9
5
5
  SHA512:
6
- metadata.gz: 5f0bbd36fce2797685907701d6338707a365f9ca34abd77e26d7ce8c63747fd8c3d4c8ecb23946418f373dcf9705512e6525acf273a6281f7578acd1d3127f78
7
- data.tar.gz: 0ea446af187795f1ef98e30f20b34d61c65092474be95a9c03bf6381692938ffe1a0581e70606989a772f0d690c4c25f2a31ef71a3245166db2c4f50ca2f2440
6
+ metadata.gz: 5a89a120497a7f817c2eb70b64d7b8cbbf4551607eb6f645efa1d7600304067d8f76ea0e17e1b4774e40d5f772aace217b4914b05475d071ab8a2c2a8d950e05
7
+ data.tar.gz: b5693a081caef579eb4268a6400e09bd1d65a30480f6aafaf93b6057ba2956645a52aa8365e68f3cb770bef9abdd0a7830e13f4e545c2a2776428e4d00fc1b79
data/.gitignore CHANGED
@@ -20,3 +20,5 @@ tmp
20
20
  *.o
21
21
  *.a
22
22
  mkmf.log
23
+ *.swp
24
+
data/Guardfile ADDED
@@ -0,0 +1,11 @@
1
+ guard :rspec, cmd: 'bundle exec rspec' do
2
+ # watch /lib/ files
3
+ watch(%r{^lib/(.+).rb$}) do |m|
4
+ "spec/#{m[1]}_spec.rb"
5
+ end
6
+
7
+ # watch /spec/ files
8
+ watch(%r{^spec/(.+).rb$}) do |m|
9
+ "spec/#{m[1]}.rb"
10
+ end
11
+ end
@@ -0,0 +1,108 @@
1
+ #
2
+ # TestRail API binding for Ruby (API v2, available since TestRail 3.0)
3
+ #
4
+ # Learn more:
5
+ #
6
+ # http://docs.gurock.com/testrail-api2/start
7
+ # http://docs.gurock.com/testrail-api2/accessing
8
+ #
9
+ # Copyright Gurock Software GmbH
10
+ #
11
+
12
+ require 'net/http'
13
+ require 'net/https'
14
+ require 'uri'
15
+ require 'json'
16
+
17
+ module TestRail
18
+ class APIClient
19
+ @url = ''
20
+ @user = ''
21
+ @password = ''
22
+
23
+ attr_accessor :user
24
+ attr_accessor :password
25
+
26
+ def initialize(base_url,user,password)
27
+ if !base_url.match(/\/$/)
28
+ base_url += '/'
29
+ end
30
+ @url = base_url + 'index.php?/api/v2/'
31
+ @user ||=user
32
+ @password ||=password
33
+ end
34
+
35
+ #
36
+ # Send Get
37
+ #
38
+ # Issues a GET request (read) against the API and returns the result
39
+ # (as Ruby hash).
40
+ #
41
+ # Arguments:
42
+ #
43
+ # uri The API method to call including parameters
44
+ # (e.g. get_case/1)
45
+ #
46
+ def send_get(uri)
47
+ _send_request('GET', uri, nil)
48
+ end
49
+
50
+ #
51
+ # Send POST
52
+ #
53
+ # Issues a POST request (write) against the API and returns the result
54
+ # (as Ruby hash).
55
+ #
56
+ # Arguments:
57
+ #
58
+ # uri The API method to call including parameters
59
+ # (e.g. add_case/1)
60
+ # data The data to submit as part of the request (as
61
+ # Ruby hash, strings must be UTF-8 encoded)
62
+ #
63
+ def send_post(uri, data)
64
+ _send_request('POST', uri, data)
65
+ end
66
+
67
+ private
68
+ def _send_request(method, uri, data)
69
+ url = URI.parse(@url + uri)
70
+ if method == 'POST'
71
+ request = Net::HTTP::Post.new(url.path + '?' + url.query)
72
+ request.body = JSON.dump(data)
73
+ else
74
+ request = Net::HTTP::Get.new(url.path + '?' + url.query)
75
+ end
76
+ request.basic_auth(@user, @password)
77
+ request.add_field('Content-Type', 'application/json')
78
+
79
+ conn = Net::HTTP.new(url.host, url.port)
80
+ if url.scheme == 'https'
81
+ conn.use_ssl = true
82
+ conn.verify_mode = OpenSSL::SSL::VERIFY_NONE
83
+ end
84
+ response = conn.request(request)
85
+
86
+ if response.body && !response.body.empty?
87
+ result = JSON.parse(response.body)
88
+ else
89
+ result = {}
90
+ end
91
+
92
+ if response.code != '200'
93
+ if result && result.key?('error')
94
+ error = '"' + result['error'] + '"'
95
+ else
96
+ error = 'No additional error message received'
97
+ end
98
+ raise APIError.new('TestRail API returned HTTP %s (%s)' %
99
+ [response.code, error])
100
+ end
101
+
102
+ result
103
+ end
104
+ end
105
+
106
+ class APIError < StandardError
107
+ end
108
+ end
@@ -1,3 +1,3 @@
1
1
  module Cukerail
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -0,0 +1,6 @@
1
+ require 'spec_helper'
2
+
3
+ describe Cukerail do
4
+ let(:sender){Testrail::Cukerail.new}
5
+
6
+ end
@@ -0,0 +1,2 @@
1
+ require 'pry'
2
+ require 'Cukerail'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cukerail
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Small
@@ -90,12 +90,16 @@ extra_rdoc_files: []
90
90
  files:
91
91
  - ".gitignore"
92
92
  - Gemfile
93
+ - Guardfile
93
94
  - LICENSE.txt
94
95
  - README.md
95
96
  - Rakefile
96
97
  - cukerail.gemspec
97
98
  - lib/cukerail.rb
99
+ - lib/cukerail/testrail.rb
98
100
  - lib/cukerail/version.rb
101
+ - spec/cukerail_spec.rb
102
+ - spec/spec_helper.rb
99
103
  homepage: ''
100
104
  licenses:
101
105
  - MIT
@@ -120,4 +124,6 @@ rubygems_version: 2.2.2
120
124
  signing_key:
121
125
  specification_version: 4
122
126
  summary: Integrates Cucumber and Testrail from Gurock Software
123
- test_files: []
127
+ test_files:
128
+ - spec/cukerail_spec.rb
129
+ - spec/spec_helper.rb