res 1.2.11 → 1.2.12

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: 30733552e025a5f8a126750194414b8250b95fc7
4
- data.tar.gz: eb3d3795f5743b983a61809974c5816149f5706c
3
+ metadata.gz: 5fa3f63bf69641606ead0c84b5f495ee55ec0c84
4
+ data.tar.gz: bf4bdb3d3e75bcf7dc67e1fbe7572e4a14742c52
5
5
  SHA512:
6
- metadata.gz: 839468cb3ad1fdc72a8aa5f373adfc80c6c97d361c3361a97a147799282b852872712cc646369f0dae557f8a5b34c3cb17ac2e009cb65fcd1f6561dfbc511186
7
- data.tar.gz: b9a7b700c6cca3eee353847e95438677e0f4db3d778628435c05d180fd7786b8f20914bf5927bd4d1882ae47a34320e87168e66ba8a93e7a38c7f33593e8ec98
6
+ metadata.gz: 9cfdf0bf42bf29a42febf405efe1ac577592d8e31651e0cae4eb79b9019bf0c33cd9b51996fbc5817f4691432534ce750d8664dcf214621eff7149d9782bf15b
7
+ data.tar.gz: ebd752c7a0dd9fdc3067fb4ae0418814be9ad1a94c77dee6657371913c72e2e27221f4bc17977cdcb7ea93bfc950b983d264b58d4f3ea21dabce60c264ad36ce
@@ -38,8 +38,8 @@ module Res
38
38
  index =0
39
39
  end
40
40
  while i < group_notification.group.examples.count
41
- result[@count][:children] = Array.new if !result[@count].has_key?(:children)
42
- result[@count][:children][index] = Hash.new
41
+ result[@count][:children] = Array.new unless result[@count].has_key?(:children)
42
+ result[@count][:children][index] = {}
43
43
  result[@count][:children][index] = add_result(group_notification.group.examples[i].metadata)
44
44
  index += 1
45
45
  i += 1
@@ -14,7 +14,11 @@ module Res
14
14
 
15
15
  def initialize(runtime, path_or_io, options)
16
16
  @runtime = runtime
17
- @io = ensure_io(path_or_io)
17
+ begin
18
+ @io = ensure_io(path_or_io)
19
+ rescue
20
+ @io = ensure_io(path_or_io, '')
21
+ end
18
22
  @options = options
19
23
  @exceptions = []
20
24
  @indent = 0
@@ -32,7 +36,7 @@ module Res
32
36
  def after_features(features)
33
37
  results = @_features
34
38
  ir = ::Res::IR.new( :started => @_start_time,
35
- :finished => Time.now(),
39
+ :finished => Time.now,
36
40
  :results => results,
37
41
  :type => 'Cucumber' )
38
42
  @io.puts ir.json
@@ -41,7 +45,7 @@ module Res
41
45
  def before_feature(feature)
42
46
  @_feature = {}
43
47
  @_context = {}
44
- @_feature[:started] = Time.now()
48
+ @_feature[:started] = Time.now
45
49
  begin
46
50
  hash = RubyCucumber2.split_uri( feature.location.to_s )
47
51
  @_feature[:file] = hash[:file]
@@ -55,7 +59,7 @@ module Res
55
59
  end
56
60
 
57
61
  def comment_line(comment_line)
58
- @_context[:comments] = [] if !@_context[:comments]
62
+ @_context[:comments] = [] unless @_context[:comments]
59
63
  @_context[:comments] << comment_line
60
64
  end
61
65
 
@@ -63,7 +67,7 @@ module Res
63
67
  end
64
68
 
65
69
  def tag_name(tag_name)
66
- @_context[:tags] = [] if !@_context[:tag]
70
+ @_context[:tags] = [] unless @_context[:tag]
67
71
  # Strip @ from tags
68
72
  @_context[:tags] << tag_name[1..-1]
69
73
  end
@@ -72,7 +76,7 @@ module Res
72
76
  # :name => 'Feature name',
73
77
  # :description => "As a blah\nAs a blah\n" }
74
78
  def feature_name(keyword, name)
75
- @_feature[:type] = "Cucumber::" + keyword.gsub(/\s+/, "")
79
+ @_feature[:type] = "Cucumber::#{keyword.gsub(/\s+/, '')}"
76
80
 
77
81
  lines = name.split("\n")
78
82
  lines = lines.collect { |l| l.strip }
@@ -82,7 +86,7 @@ module Res
82
86
  end
83
87
 
84
88
  def after_feature(feature)
85
- @_feature[:finished] = Time.now()
89
+ @_feature[:finished] = Time.now
86
90
  end
87
91
 
88
92
  def before_feature_element(feature_element)
@@ -100,7 +104,7 @@ module Res
100
104
  @_feature_element[:file] = 'unknown'
101
105
  end
102
106
 
103
- @_feature[:children] = [] if ! @_feature[:children]
107
+ @_feature[:children] = [] unless @_feature[:children]
104
108
 
105
109
  @_feature[:children] << @_feature_element
106
110
  @_context = @_feature_element
@@ -122,7 +126,7 @@ module Res
122
126
  end
123
127
 
124
128
  if fail.compact.empty? and feature_element.respond_to? :status
125
- @_feature_element[:status] = feature_element.status if feature_element.status.to_s != "skipped"
129
+ @_feature_element[:status] = feature_element.status if feature_element.status.to_s != 'skipped'
126
130
  else
127
131
  fail = fail.compact
128
132
  @_feature_element[:status] = fail[0].status
@@ -147,7 +151,7 @@ module Res
147
151
 
148
152
 
149
153
  def scenario_name(keyword, name, file_colon_line, source_indent)
150
- @_context[:type] = "Cucumber::" + keyword.gsub(/\s+/, "")
154
+ @_context[:type] = "Cucumber::#{keyword.gsub(/\s+/, '')}"
151
155
  @_context[:name] = name || ''
152
156
  end
153
157
 
@@ -159,8 +163,8 @@ module Res
159
163
  # to scenario that don't exist
160
164
  return if @_feature_element && @_feature_element[:finished]
161
165
 
162
- @_feature_element = {} if !@_feature_element
163
- @_feature_element[:children] = [] if !@_feature_element[:children]
166
+ @_feature_element = {} unless @_feature_element
167
+ @_feature_element[:children] = [] unless @_feature_element[:children]
164
168
  @_feature_element[:children] << @_step
165
169
  @_context = @_step
166
170
  end
@@ -169,12 +173,12 @@ module Res
169
173
 
170
174
  file_colon_line = args[0] if args[0]
171
175
 
172
- @_step[:type] = "Cucumber::Step"
176
+ @_step[:type] = 'Cucumber::Step'
173
177
  name = keyword + step_match.format_args(lambda{|param| %{#{param}}})
174
178
  @_step[:name] = name
175
179
  @_step[:status] = status
176
180
  #@_step[:background] = background
177
- @_step[:type] = "Cucumber::Step"
181
+ @_step[:type] = 'Cucumber::Step'
178
182
 
179
183
  end
180
184
 
@@ -208,23 +212,23 @@ module Res
208
212
 
209
213
  def before_table_row(table_row)
210
214
  @_current_table_row = { :type => 'Cucumber::ScenarioOutline::Example' }
211
- @_table = [] if !@_table
215
+ @_table = [] unless @_table
212
216
  end
213
217
 
214
218
  def after_table_row(table_row)
215
- if table_row.class == Cucumber::Formatter::LegacyApi::Ast::ExampleTableRow
219
+ if table_row.class == Cucumber::Formatter::LegacyApi::Ast::ExampleTableRow
216
220
 
217
221
  @_current_table_row[:name] = table_row.name
218
222
  if table_row.exception
219
223
  @_current_table_row[:message] = table_row.exception.to_s
220
224
  end
221
225
 
222
- if table_row.status and table_row.status != "skipped" and table_row.status != nil
226
+ if table_row.status and table_row.status != 'skipped' and table_row.status != nil
223
227
  @_current_table_row[:status] = table_row.status
224
228
  end
225
229
 
226
230
  @_current_table_row[:line] = table_row.line
227
- @_current_table_row[:urn] = @_feature_element[:file] + ":" + table_row.line.to_s
231
+ @_current_table_row[:urn] = @_feature_element[:file] + ':' + table_row.line.to_s
228
232
  @_table << @_current_table_row
229
233
  end
230
234
  end
@@ -234,7 +238,7 @@ module Res
234
238
 
235
239
  def table_cell_value(value, status)
236
240
  @_current_table_row[:children] = [] if !@_current_table_row[:children]
237
- @_current_table_row[:children] << { :type => "Cucumber::ScenarioOutline::Parameter",
241
+ @_current_table_row[:children] << { :type => 'Cucumber::ScenarioOutline::Parameter',
238
242
  :name => value, :status => status }
239
243
  end
240
244
 
@@ -6,51 +6,55 @@ module Res
6
6
  attr_accessor :io
7
7
 
8
8
  def initialize(instrument_output)
9
- result = Array.new
10
9
  result = parse(instrument_output)
11
10
  ir = ::Res::IR.new( :type => 'AndroidJUnitRunner',
12
- :started => "",
13
- :finished => Time.now(),
11
+ :started => '',
12
+ :finished => Time.now,
14
13
  :results => result
15
14
  )
16
- @io = File.open("./instruments.res", "w")
15
+ @io = File.open('./instruments.res', 'w')
17
16
  @io.puts ir.json
18
17
  @io.close
19
18
  end
20
19
 
21
20
  def parse(output)
22
- class_name = Array.new
23
- test = Array.new
24
- result = Array.new
21
+ class_name = []
22
+ result = []
25
23
  test = {
26
- type: "AndroidJUnit::Test",
24
+ type: 'AndroidJUnit::Test',
27
25
  name: 'UNKNOWN',
28
- status: "passed"
26
+ status: 'passed'
29
27
  }
28
+
30
29
  File.open(output) do |f|
31
30
  f.each_line do |line|
32
- if line.include?("INSTRUMENTATION_STATUS_CODE")
31
+
32
+ if line.include?('INSTRUMENTATION_STATUS_CODE')
33
+ # Skip if this is just the 'pre-run' test
34
+ if line.include?('INSTRUMENTATION_STATUS_CODE: 1')
35
+ next
36
+ end
33
37
  result.last[:children] << test
34
38
  test = {
35
- type: "AndroidJUnit::Test",
39
+ type: 'AndroidJUnit::Test',
36
40
  name: 'UNKNOWN',
37
- status: "passed"
41
+ status: 'passed'
38
42
  }
39
43
  end
40
44
 
41
- if line.include?("class")
42
- line = line.gsub("INSTRUMENTATION_STATUS: class=", "").strip
43
- if !class_name.include? line
44
- class_name.push(line)
45
+ if line.include?('class')
46
+ line = line.gsub('INSTRUMENTATION_STATUS: class=', '').strip
47
+ unless class_name.include? line
48
+ class_name.push(line)
45
49
  result << {
46
- type: "AndroidJUnit::Class",
50
+ type: 'AndroidJUnit::Class',
47
51
  name: class_name.last,
48
52
  children: Array.new
49
53
  }
50
54
  end
51
- elsif line.include?("test=")
52
- test[:name] = line.gsub("INSTRUMENTATION_STATUS: test=", "").strip
53
- elsif line.include?("Error in ")
55
+ elsif line.include?('test=')
56
+ test[:name] = line.gsub('INSTRUMENTATION_STATUS: test=', '').strip
57
+ elsif line.include?('Error in ')
54
58
  test[:status] = 'failed'
55
59
  end
56
60
  end
@@ -15,45 +15,44 @@ module Res
15
15
  raise "Invalid xunit XML format. Error: #{e}"
16
16
  end
17
17
  file.close
18
- result = Array.new
19
18
  result = attach_suite(junit)
20
19
  ir = ::Res::IR.new( :type => 'Junit',
21
- :started => "",
22
- :finished => Time.now(),
20
+ :started => '',
21
+ :finished => Time.now,
23
22
  :results => result
24
23
  )
25
- @io = File.open("./junit.res", "w")
24
+ @io = File.open('./junit.res', 'w')
26
25
  @io.puts ir.json
27
26
  @io.close
28
27
  end
29
28
 
30
29
  def attach_cases(node)
31
30
  testcase = Hash.new
32
- testcase["type"] = "JUnit::" + node.value
33
- testcase["name"] = node.attributes[:name]
34
- testcase["classname"] = node.attributes[:classname] if testcase["classname"] != nil
35
- testcase["duration"] = node.attributes[:time]
36
- testcase["status"] = "passed"
31
+ testcase['type'] = "JUnit::#{node.value}"
32
+ testcase['name'] = node.attributes[:name]
33
+ testcase['classname'] = node.attributes[:classname] if testcase['classname'] != nil
34
+ testcase['duration'] = node.attributes[:time]
35
+ testcase['status'] = 'passed'
37
36
  if node.nodes[0] != nil
38
- testcase["status"] = "failed" if node.nodes[0].value == "failure" or node.nodes[0].value == "error"
39
- testcase["status"] = "notrun" if node.nodes[0].value == "skipped"
37
+ testcase['status'] = 'failed' if node.nodes[0].value == 'failure' or node.nodes[0].value == 'error'
38
+ testcase['status'] = 'notrun' if node.nodes[0].value == 'skipped'
40
39
  end
41
40
  testcase
42
41
  end
43
42
 
44
43
  def attach_suite(component)
45
- suite = Array.new
44
+ suite = []
46
45
  index = 0
47
46
  component.nodes.each do |node|
48
- if node.value == "testcase"
47
+ if node.value == 'testcase'
49
48
  suite[index] = Hash.new
50
49
  suite[index] = attach_cases(node)
51
50
  else
52
51
  suite[index] = Hash.new
53
- suite[index]["type"] = "JUnit::" + node.value
54
- suite[index]["name"] = node.attributes[:name]
55
- suite[index]["classname"] = node.attributes[:classname] if suite[index]["classname"] != nil
56
- suite[index]["children"] = attach_suite(node)
52
+ suite[index]['type'] = "JUnit::#{node.value}"
53
+ suite[index]['name'] = node.attributes[:name]
54
+ suite[index]['classname'] = node.attributes[:classname] if suite[index]['classname'] != nil
55
+ suite[index]['children'] = attach_suite(node)
57
56
  end # if
58
57
  index += 1
59
58
  end # each
@@ -14,7 +14,7 @@ module Res
14
14
  config.process(args)
15
15
 
16
16
  @case_status = {}
17
- @io = File.new("./.test_rail_reporter.log","w+")
17
+ @io = File.new('./.test_rail_reporter.log','w+')
18
18
 
19
19
  test_rail_project = config.project
20
20
  @suite_name = config.suite
@@ -35,7 +35,7 @@ module Res
35
35
  @mappings = Res::Mappings.new(@ir.type)
36
36
 
37
37
  suite = @project.find_or_create_suite(:name => @suite_name, :id => @project.id)
38
- @io.puts "Syncing Suite"
38
+ @io.puts 'Syncing Suite'
39
39
 
40
40
  i = 0
41
41
  while i < @ir.results.count
@@ -44,13 +44,13 @@ module Res
44
44
  i += 1
45
45
  end # while
46
46
  @synced = true
47
- @io.puts "> Sync Successful"
47
+ @io.puts '> Sync Successful'
48
48
  end
49
49
 
50
50
  # Submits run against suite
51
51
  # Either creates a new run using run_name or use existing run_id
52
52
  def submit_results(ir, args = {})
53
- sync_tests(ir) if !@synced
53
+ sync_tests(ir) unless @synced
54
54
  suite = @project.find_suite(:name => @suite_name)
55
55
 
56
56
  run_name = @config.run_name || args[:run_name] || nil
@@ -74,9 +74,9 @@ module Res
74
74
  end
75
75
 
76
76
  else
77
- @io.puts "> run_name and run_id are either nil or not specified"
77
+ @io.puts '> run_name and run_id are either nil or not specified'
78
78
  @io.close
79
- return "run_name and run_id are either nil or not specified"
79
+ return 'run_name and run_id are either nil or not specified'
80
80
 
81
81
  end
82
82
 
@@ -94,10 +94,10 @@ module Res
94
94
  end # while
95
95
  end # ifa
96
96
  add_case_status(run_id)
97
- @io.puts "> Added the test case status"
98
- @io.puts "> Submit Successful"
97
+ @io.puts '> Added the test case status'
98
+ @io.puts '> Submit Successful'
99
99
  @io.close
100
- return "Submitted to Test Rail"
100
+ 'Submitted to Test Rail'
101
101
  end
102
102
 
103
103
  def tr
@@ -136,11 +136,9 @@ module Res
136
136
  if @mappings.context.include?(child[:type])
137
137
  section = section.find_section(:name => child[:name])
138
138
  case_details(child, section)
139
-
140
139
  elsif @mappings.case.include?(child[:type])
141
- tcase = section.find_test_case(:title => child[:name]) if !section.nil?
142
- @case_status[:"#{tcase.id}"] = child[:status] if !tcase.nil?
143
-
140
+ tcase = section.find_test_case(:title => child[:name]) unless section.nil?
141
+ @case_status[:"#{tcase.id}"] = child[:status] unless tcase.nil?
144
142
  end
145
143
  end
146
144
  end
data/lib/res/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Res
2
- VERSION = '1.2.11'
2
+ VERSION = '1.2.12'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: res
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.11
4
+ version: 1.2.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - BBC
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-06-07 00:00:00.000000000 Z
13
+ date: 2016-08-30 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: json
@@ -128,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
128
  version: '0'
129
129
  requirements: []
130
130
  rubyforge_project:
131
- rubygems_version: 2.5.0
131
+ rubygems_version: 2.5.1
132
132
  signing_key:
133
133
  specification_version: 4
134
134
  summary: Test Result report libraries