allure-ruby-commons 2.13.6.2 → 2.13.8.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: 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