itriagetestrail 0.5.2 → 0.5.3

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: 94e0853e28a8acdafc49675a90cfc199d16a83b0
4
- data.tar.gz: 8d4ffb6c089f4e60883821f9c1c698a29d8325dc
3
+ metadata.gz: e6f6904a905838df066482dcc05ebb144f9a160a
4
+ data.tar.gz: 799591fb203c9a7b63bad700b43aa8fc1b119715
5
5
  SHA512:
6
- metadata.gz: eb789fe6e8d813e57b85d96d48a9145e9cc48835aab41c716fb12621ed4ca859ea94b67d3380c531e32aae652d237c02ec784ea9f50b65d0b1e8b6db695d82f5
7
- data.tar.gz: 90b9a79fbad30ab04570e273f6dcf30096f14bd4b5d704bdcd78e512af5b6cf3e7f57a6b2541cdd188a359ca968a9c28f3360a7fc46b1617e2c9d552b0a56bce
6
+ metadata.gz: 0b183e17372937c91a2ce1ea4ee1f53356daf0b2f2dc7f810309d0a27ef8903e320b5a6f9cd7386f3394750f01d1c2d651580cf6d6317728af58258631e78a54
7
+ data.tar.gz: da677a2b7f989092ff762cd5c00c66368600771bb2592e53a7e2c7443ec5a771b858fb9a7182b9eab9ea3bb40938ddd238ddc9f1a7633c3a59db0b6dce3bf2f9
@@ -1,3 +1,3 @@
1
1
  module Itriagetestrail
2
- VERSION = '0.5.2'
2
+ VERSION = '0.5.3'
3
3
  end
@@ -30,6 +30,7 @@ module Itriagetestrail
30
30
  @milestone_name = normalize_milestone
31
31
  @jenkins_build = @testrail_config[:jenkinsBuild]
32
32
  @app_version = @testrail_config[:appVersion]
33
+ @suite_name = @testrail_config[:suiteName]
33
34
 
34
35
  if @testrail_config[:tzinfoTimeZone].nil? || @testrail_config[:tzinfoTimeZone].empty?
35
36
  @time_zone = TZInfo::Timezone.get('UTC')
@@ -83,7 +84,9 @@ module Itriagetestrail
83
84
  def initialize_variables
84
85
  make_connection
85
86
  # Set the project id
86
- set_project_id
87
+ set_project
88
+ # Get the test rail suites
89
+ testrail_suites
87
90
  # Get the test rail sections
88
91
  testrail_sections
89
92
  # Get the test rail ids
@@ -96,9 +99,81 @@ module Itriagetestrail
96
99
  @client.password = @testrail_config[:password]
97
100
  end
98
101
 
102
+ def projects
103
+ @projects ||= @client.send_get("get_projects")
104
+ end
105
+
106
+ def project_by_name(name)
107
+ res = -1
108
+ projects.each do |project|
109
+ res = project if project['name'] == name
110
+ end
111
+ res
112
+ end
113
+
114
+ def project_by_id(id)
115
+ res = -1
116
+ projects.each do |project|
117
+ res = project if project['id'] == id.to_i
118
+ end
119
+ res
120
+ end
121
+
122
+ def set_project
123
+ requested_id = @testrail_config[:projectId]
124
+ case requested_id
125
+ when nil, ''
126
+ # a project id was not provided, fetch it from TestRail by project name
127
+ res = project_by_name(@testrail_config[:projectName])
128
+ if res == -1
129
+ @execute = false
130
+ return
131
+ end
132
+ @project_id = res['id']
133
+ @suite_mode = res['suite_mode']
134
+ else
135
+ # use the requested project id
136
+ @project_id = requested_id
137
+ @suite_mode = project_by_id(@project_id)['suite_mode']
138
+ end
139
+ end
140
+
141
+ # TestRail Suites
142
+ def testrail_suites
143
+ case @suite_mode
144
+ when 2,3
145
+ @suites = @client.send_get("get_suites/#{@project_id}")
146
+ end
147
+ end
148
+
149
+ def testrail_suite_id(suite_name)
150
+ res = -1
151
+ @suites.each do |suite|
152
+ res = suite['id'] if suite['name'] == suite_name
153
+ end
154
+ res
155
+ end
156
+
157
+ def add_testrail_suite(suite_name)
158
+ body = { name: suite_name }
159
+ res = @client.send_post("add_suite/#{@project_id}", body)
160
+ testrail_suite = res['id']
161
+
162
+ #re-establish suites
163
+ testrail_suites
164
+
165
+ testrail_suite
166
+ end
167
+
99
168
  # TestRail Sections
100
169
  def testrail_sections
101
- @sections = @client.send_get("get_sections/#{@project_id}")
170
+ case @suite_mode
171
+ when 2,3
172
+ @suite_id = testrail_suite_id(@suite_name)
173
+ @sections = @client.send_get("get_sections/#{@project_id}&suite_id=#{@suite_id}")
174
+ else
175
+ @sections = @client.send_get("get_sections/#{@project_id}")
176
+ end
102
177
  end
103
178
 
104
179
  def testrail_section_id(section_title)
@@ -109,6 +184,29 @@ module Itriagetestrail
109
184
  res
110
185
  end
111
186
 
187
+ def add_testrail_section(section_title)
188
+ if @suite_name
189
+ body = {
190
+ name: section_title,
191
+ suite_id: testrail_suite_id(@suite_name)
192
+ }
193
+ else
194
+ body = {
195
+ name: section_title
196
+ }
197
+ end
198
+
199
+ res = @client.send_post("add_section/#{@project_id}", body)
200
+
201
+ testrail_section = res['id']
202
+
203
+ # re-establish sections
204
+ testrail_sections
205
+
206
+ testrail_section
207
+ end
208
+
209
+ #TestRail Milestones
112
210
  def normalize_milestone
113
211
  case @testrail_config[:origin]
114
212
  when 'prd', 'production', 'origin/production'
@@ -130,27 +228,6 @@ module Itriagetestrail
130
228
  end
131
229
  end
132
230
 
133
- def set_project_id()
134
- requested_id = @testrail_config[:projectId]
135
- case requested_id
136
- when nil, ''
137
- # a project id was not provided, fetch it from TestRail by project name
138
- projects = @client.send_get("get_projects")
139
- res = -1
140
- projects.each do |project|
141
- res = project['id'] if project['name'] == @testrail_config[:projectName]
142
- end
143
- if res == -1
144
- @execute = false
145
- return
146
- end
147
- @project_id = res
148
- else
149
- # use the requested project id
150
- @project_id = requested_id
151
- end
152
- end
153
-
154
231
  # returns timestamp for begining of first day of current quarter
155
232
  def milestone_period_start
156
233
  time_zone = TZInfo::Timezone.get('America/Denver')
@@ -247,24 +324,14 @@ module Itriagetestrail
247
324
  end
248
325
  end
249
326
 
250
- def add_testrail_section(section_title)
251
- body = {
252
- name: section_title
253
- }
254
-
255
- res = @client.send_post("add_section/#{@project_id}", body)
256
-
257
- testrail_section = res['id']
258
-
259
- # re-establish sections
260
- testrail_sections
261
-
262
- testrail_section
263
- end
264
-
265
327
  # TestRail Cases
266
328
  def testrail_ids
267
- @test_cases = @client.send_get("get_cases/#{@project_id}&type_id=3")
329
+ case @suite_mode
330
+ when 2,3
331
+ @test_cases = @client.send_get("get_cases/#{@project_id}&suite_id=#{@suite_id}&type_id=3")
332
+ else
333
+ @test_cases = @client.send_get("get_cases/#{@project_id}&type_id=3")
334
+ end
268
335
 
269
336
  @test_case_ids = []
270
337
 
@@ -331,27 +398,23 @@ module Itriagetestrail
331
398
 
332
399
  # open a test run to submit test results
333
400
  def add_testrail_run
334
- if @testrail_config[:include_all] || true
335
-
336
- body = {
401
+ body = {
337
402
  name: test_name,
338
403
  description: '',
339
404
  include_all: true,
340
405
  milestone_id: @milestone_id
341
- }
342
- else
406
+ }
343
407
 
344
- body = {
345
- name: test_name,
346
- description: '',
347
- include_all: false,
348
- case_ids: @test_case_ids,
349
- milestone_id: @milestone_id
350
- }
408
+ unless @testrail_config[:include_all] || true
409
+ body[:include_all] = false
410
+ body[:case_ids] = @test_case_ids
351
411
  end
352
412
 
413
+ case @suite_mode
414
+ when 2,3
415
+ body[:suite_id] = @suite_id
416
+ end
353
417
  res = @client.send_post("add_run/#{@project_id}", body)
354
-
355
418
  @run_id = res['id']
356
419
  end
357
420
 
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itriagetestrail
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - a801069
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-03-01 00:00:00.000000000 Z
11
+ date: 2016-04-13 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
19
  version: '1.10'
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
26
  version: '1.10'
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
33
  version: '10.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
40
  version: '10.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
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
54
  version: '0'
55
55
  description: Plugin to export your cucumber tests in the Testrail
@@ -59,8 +59,8 @@ extensions: []
59
59
  extra_rdoc_files: []
60
60
  files:
61
61
  - lib/itriagetestrail.rb
62
- - lib/itriagetestrail/testrail_binding.rb
63
62
  - lib/itriagetestrail/pool.rb
63
+ - lib/itriagetestrail/testrail_binding.rb
64
64
  - lib/itriagetestrail/version.rb
65
65
  homepage:
66
66
  licenses: []
@@ -71,17 +71,17 @@ require_paths:
71
71
  - lib
72
72
  required_ruby_version: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - '>='
74
+ - - ">="
75
75
  - !ruby/object:Gem::Version
76
76
  version: '0'
77
77
  required_rubygems_version: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - '>='
79
+ - - ">="
80
80
  - !ruby/object:Gem::Version
81
81
  version: '0'
82
82
  requirements: []
83
83
  rubyforge_project:
84
- rubygems_version: 2.0.14.1
84
+ rubygems_version: 2.4.5.1
85
85
  signing_key:
86
86
  specification_version: 4
87
87
  summary: Plugin to export your cucumber tests in the Testrail