allure-ruby-commons 2.13.6.2 → 2.13.8.1

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
  SHA256:
3
- metadata.gz: 2dde5d93b183282927b03e256e2d9cbe933fd234aa9230545b7d91f074111a20
4
- data.tar.gz: 8c05594912decb62f1fc9cc52ebdc85ff9a506c6bd1cbb8cb0a71f7d54102dca
3
+ metadata.gz: be70de370f6d6732ca70063312ccb4ffd0cf27ede2c50f53f7427ba718ce11d9
4
+ data.tar.gz: 67b723e4ef1b8092f279a27a9c250a093124b8f78c93dbc34a8655afc29420bd
5
5
  SHA512:
6
- metadata.gz: f8feed62b8a1f8c1182566623ac01e35356f6ce43dc86479b76175ae0cee0480517df3f5bc349a624a8ae4769acc1e72e10ccde649fc204debe508dd8b104783
7
- data.tar.gz: f58060aa2b39d17b5a28b7ae222c049d96d734a64ea238d27a2fa536fd4010015fe11c3abbd43cb6ce28ec1b7548dffa245dc7c75f1fdf622c1e0cb04a24551c
6
+ metadata.gz: c10538c94a3334367b08d536db7f2449ef184201d7c5d95e02914c018ad4691b80dac94e898ee03d10e53f98741532afec30192b4e558be1ad19aeaf27324eb2
7
+ data.tar.gz: dad294ed8428f5e84a514203f8515cbe7241ebab5535ceb5163c2cf83df589ba5874ad5bd8aa3f820e5e18b42e92436567c96b8d5f5f3ab2554447ef1f4915b7
@@ -3,6 +3,7 @@
3
3
 
4
4
  require "require_all"
5
5
  require "uuid"
6
+
6
7
  require_rel "allure_ruby_commons/**/*rb"
7
8
 
8
9
  # Namespace for classes that handle allure report generation and different framework adaptors
@@ -161,15 +162,17 @@ module Allure
161
162
  lifecycle.stop_test_step
162
163
  end
163
164
 
164
- # Run passed block as step with given name
165
+ # Run passed block as step with given name and return result of yield
165
166
  # @param [String] name
166
167
  # @yield [] step block
167
- # @return [void]
168
+ # @return [Object]
168
169
  def run_step(name)
169
170
  lifecycle.start_test_step(StepResult.new(name: name, stage: Stage::RUNNING))
170
- yield
171
+ result = yield
171
172
  lifecycle.update_test_step { |step| step.status = Status::PASSED }
172
- rescue => e
173
+
174
+ result
175
+ rescue StandardError => e
173
176
  lifecycle.update_test_step do |step|
174
177
  step.status = ResultUtils.status(e)
175
178
  step.status_details = ResultUtils.status_details(e)
@@ -5,13 +5,13 @@ require "forwardable"
5
5
 
6
6
  module Allure
7
7
  # Main class for creating and writing allure results
8
- class AllureLifecycle
8
+ class AllureLifecycle # rubocop:disable Metrics/ClassLength
9
9
  extend Forwardable
10
10
 
11
11
  def initialize
12
12
  @test_context = []
13
13
  @step_context = []
14
- @logger = Logger.new(STDOUT, level: Config.instance.logging_level)
14
+ @logger = Logger.new($stdout, level: Config.instance.logging_level)
15
15
  @file_writer = FileWriter.new
16
16
  end
17
17
 
@@ -133,7 +133,7 @@ module Allure
133
133
  def stop_test_step
134
134
  return logger.error { "Could not stop test step, no step is running" } unless current_test_step
135
135
 
136
- logger.debug { "Stoping test step: #{current_test_step.stop}" }
136
+ logger.debug { "Stopping test step: #{current_test_step.name}" }
137
137
  current_test_step.stop = ResultUtils.timestamp
138
138
  current_test_step.stage = Stage::FINISHED
139
139
  clear_last_test_step
@@ -204,13 +204,13 @@ module Allure
204
204
  # @param [Boolean] test_case add attachment to current test case
205
205
  # @return [void]
206
206
  def add_attachment(name:, source:, type:, test_case: false)
207
- attachment = ResultUtils.prepare_attachment(name, type) || begin
208
- return logger.error { "Can't add attachment, unrecognized mime type: #{type}" }
209
- end
210
- executable_item = (test_case && @current_test_case) || current_executable
211
- executable_item&.attachments&.push(attachment) || begin
212
- return logger.error { "Can't add attachment, no test, step or fixture is running" }
213
- end
207
+ attachment = ResultUtils.prepare_attachment(name, type)
208
+ return logger.error { "Can't add attachment, unrecognized mime type: #{type}" } unless attachment
209
+
210
+ executable_item = test_case ? @current_test_case : current_executable
211
+ return logger.error { "Can't add attachment, no test, step or fixture is running" } unless executable_item
212
+
213
+ executable_item.attachments.push(attachment)
214
214
  logger.debug { "Adding attachment '#{name}' to '#{executable_item.name}'" }
215
215
  write_attachment(source, attachment)
216
216
  end
@@ -10,12 +10,41 @@ module Allure
10
10
 
11
11
  # @return [Array<String>] valid log levels
12
12
  LOGLEVELS = %w[DEBUG INFO WARN ERROR FATAL UNKNOWN].freeze
13
+ # @return [String] test plan path env var name
14
+ TESTPLAN_PATH = "ALLURE_TESTPLAN_PATH"
15
+
16
+ attr_accessor :results_directory, :logging_level, :link_tms_pattern, :link_issue_pattern, :clean_results_directory
13
17
 
14
18
  def initialize
15
19
  @results_directory = "reports/allure-results"
16
20
  @logging_level = LOGLEVELS.index(ENV.fetch("ALLURE_LOG_LEVEL", "INFO")) || Logger::INFO
17
21
  end
18
22
 
19
- attr_accessor :results_directory, :logging_level, :link_tms_pattern, :link_issue_pattern, :clean_results_directory
23
+ # Allure id's of executable tests
24
+ #
25
+ # @return [Array]
26
+ def test_ids
27
+ @test_ids ||= tests&.map { |test| test[:id] }
28
+ end
29
+
30
+ # Test names of executable tests
31
+ #
32
+ # @return [Array]
33
+ def test_names
34
+ @test_names ||= tests&.map { |test| test[:selector] }
35
+ end
36
+
37
+ private
38
+
39
+ # Tests to execute from allure testplan.json
40
+ #
41
+ # @return [Array<Hash>]
42
+ def tests
43
+ @tests ||= begin
44
+ Oj.load_file(ENV[TESTPLAN_PATH], symbol_keys: true)&.fetch(:tests) if ENV[TESTPLAN_PATH]
45
+ end
46
+ rescue Oj::ParseError
47
+ nil
48
+ end
20
49
  end
21
50
  end
@@ -18,17 +18,14 @@ module Allure
18
18
  # @param [Allure::TestResult] test_result
19
19
  # @return [void]
20
20
  def write_test_result(test_result)
21
- write("#{test_result.uuid}#{TEST_RESULT_SUFFIX}", JSON.generate(test_result, max_nesting: false))
21
+ write("#{test_result.uuid}#{TEST_RESULT_SUFFIX}", Oj.dump(test_result))
22
22
  end
23
23
 
24
24
  # Write test result container
25
25
  # @param [Allure::TestResultContainer] test_container_result
26
26
  # @return [void]
27
27
  def write_test_result_container(test_container_result)
28
- write(
29
- "#{test_container_result.uuid}#{TEST_RESULT_CONTAINER_SUFFIX}",
30
- JSON.generate(test_container_result, max_nesting: false),
31
- )
28
+ write("#{test_container_result.uuid}#{TEST_RESULT_CONTAINER_SUFFIX}", Oj.dump(test_container_result))
32
29
  end
33
30
 
34
31
  # Write allure attachment file
@@ -55,7 +52,7 @@ module Allure
55
52
  if categories.is_a?(File)
56
53
  copy(categories.path, CATEGORIES_FILE)
57
54
  else
58
- write(CATEGORIES_FILE, categories.to_json)
55
+ write(CATEGORIES_FILE, Oj.dump(categories))
59
56
  end
60
57
  end
61
58
 
@@ -1,14 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "json"
3
+ require "oj"
4
4
 
5
5
  module Allure
6
6
  # General jsonable object implementation
7
7
  class JSONable
8
- # Return object has represantation
9
- # @param [Array<Object>] _options
8
+ Oj.default_options = { mode: :custom, use_to_hash: true, ascii_only: true }
9
+
10
+ # Return object hash represantation
10
11
  # @return [Hash]
11
- def as_json(*_options)
12
+ def to_hash
12
13
  instance_variables.each_with_object({}) do |var, map|
13
14
  key = camelcase(var.to_s.delete_prefix("@"))
14
15
  value = instance_variable_get(var)
@@ -16,13 +17,6 @@ module Allure
16
17
  end
17
18
  end
18
19
 
19
- # Convert object to json string
20
- # @param [Array<Object>] options
21
- # @return [String]
22
- def to_json(*options)
23
- as_json.to_json(*options)
24
- end
25
-
26
20
  # Object comparator
27
21
  # @param [JSONable] other
28
22
  # @return [Booelan]
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "jsonable"
4
-
5
3
  module Allure
6
4
  # Allure model attachment object
7
5
  class Attachment < JSONable
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "jsonable"
4
-
5
3
  module Allure
6
4
  # Defects category
7
5
  class Category < JSONable
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "jsonable"
4
-
5
3
  module Allure
6
4
  # Allure model executable item
7
5
  class ExecutableItem < JSONable
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "jsonable"
4
-
5
3
  module Allure
6
4
  # Allure model label object
7
5
  class Label < JSONable
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "jsonable"
4
-
5
3
  module Allure
6
4
  # Allure model link object
7
5
  class Link < JSONable
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "jsonable"
4
-
5
3
  module Allure
6
4
  # Allure model parameter object
7
5
  class Parameter < JSONable
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "jsonable"
4
-
5
3
  module Allure
6
4
  # Allure model step result container
7
5
  class TestResultContainer < JSONable
metadata CHANGED
@@ -1,36 +1,42 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: allure-ruby-commons
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.13.6.2
4
+ version: 2.13.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrejs Cunskis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-13 00:00:00.000000000 Z
11
+ date: 2021-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: uuid
14
+ name: mime-types
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '2.3'
19
+ version: '3.3'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '4'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
- version: '2.3'
29
+ version: '3.3'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '4'
27
33
  - !ruby/object:Gem::Dependency
28
- name: require_all
34
+ name: oj
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - ">="
32
38
  - !ruby/object:Gem::Version
33
- version: '2'
39
+ version: '3.10'
34
40
  - - "<"
35
41
  - !ruby/object:Gem::Version
36
42
  version: '4'
@@ -40,44 +46,50 @@ dependencies:
40
46
  requirements:
41
47
  - - ">="
42
48
  - !ruby/object:Gem::Version
43
- version: '2'
49
+ version: '3.10'
44
50
  - - "<"
45
51
  - !ruby/object:Gem::Version
46
52
  version: '4'
47
53
  - !ruby/object:Gem::Dependency
48
- name: json
54
+ name: require_all
49
55
  requirement: !ruby/object:Gem::Requirement
50
56
  requirements:
51
57
  - - ">="
52
58
  - !ruby/object:Gem::Version
53
- version: '1.8'
59
+ version: '2'
54
60
  - - "<"
55
61
  - !ruby/object:Gem::Version
56
- version: '3'
62
+ version: '4'
57
63
  type: :runtime
58
64
  prerelease: false
59
65
  version_requirements: !ruby/object:Gem::Requirement
60
66
  requirements:
61
67
  - - ">="
62
68
  - !ruby/object:Gem::Version
63
- version: '1.8'
69
+ version: '2'
64
70
  - - "<"
65
71
  - !ruby/object:Gem::Version
66
- version: '3'
72
+ version: '4'
67
73
  - !ruby/object:Gem::Dependency
68
- name: mime-types
74
+ name: uuid
69
75
  requirement: !ruby/object:Gem::Requirement
70
76
  requirements:
71
- - - "~>"
77
+ - - ">="
72
78
  - !ruby/object:Gem::Version
73
- version: '3.3'
79
+ version: '2.3'
80
+ - - "<"
81
+ - !ruby/object:Gem::Version
82
+ version: '3'
74
83
  type: :runtime
75
84
  prerelease: false
76
85
  version_requirements: !ruby/object:Gem::Requirement
77
86
  requirements:
78
- - - "~>"
87
+ - - ">="
79
88
  - !ruby/object:Gem::Version
80
- version: '3.3'
89
+ version: '2.3'
90
+ - - "<"
91
+ - !ruby/object:Gem::Version
92
+ version: '3'
81
93
  description: Utilities allowing to implement allure result generation by other test
82
94
  frameworks
83
95
  email: andrejs.cunskis@gmail.com
@@ -90,12 +102,12 @@ files:
90
102
  - lib/allure_ruby_commons/allure_lifecycle.rb
91
103
  - lib/allure_ruby_commons/config.rb
92
104
  - lib/allure_ruby_commons/file_writer.rb
105
+ - lib/allure_ruby_commons/model/01_jsonable.rb
93
106
  - lib/allure_ruby_commons/model/attachment.rb
94
107
  - lib/allure_ruby_commons/model/category.rb
95
108
  - lib/allure_ruby_commons/model/content_type.rb
96
109
  - lib/allure_ruby_commons/model/executable_item.rb
97
110
  - lib/allure_ruby_commons/model/fixture_result.rb
98
- - lib/allure_ruby_commons/model/jsonable.rb
99
111
  - lib/allure_ruby_commons/model/label.rb
100
112
  - lib/allure_ruby_commons/model/link.rb
101
113
  - lib/allure_ruby_commons/model/parameter.rb
@@ -130,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
142
  - !ruby/object:Gem::Version
131
143
  version: '0'
132
144
  requirements: []
133
- rubygems_version: 3.1.2
145
+ rubygems_version: 3.2.3
134
146
  signing_key:
135
147
  specification_version: 4
136
148
  summary: Common library for allure results generation