allure-rspec 2.13.3 → 2.13.4

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: 5d0dae51e4db6c27206a0030078093da323272cfe37474a258f9202628bc23dd
4
- data.tar.gz: e007ebdab6c1657dfa63bf2c6c47d6bad790f01f245df579dd41d2e3453b1e22
3
+ metadata.gz: afcc5a2dfc396dc25bdf88815e525a64150e6929b6888b7d416ecbcb458abf8e
4
+ data.tar.gz: 4566d418f42a82c7cbdb03f08f9812afc468ff2cf9866dafeb42e37e8e0031a3
5
5
  SHA512:
6
- metadata.gz: 45c5a098080a3eb4110bf997dd7f927a38447460fd0882b3e4e2e91f7ddaf76337b93af85ec1ac980c88c4730e2cb299f0428c1cc3dd41559491ab3e0e0b2d33
7
- data.tar.gz: fbd4ed49c73f18ec326f3775d44b58bfc5ce177b747d01872b9f126f7e211aaec7f2bf81046d85a60e27df25f85b00be30e146c6c25d0e48e75bddf079f7af30
6
+ metadata.gz: 21da1ae0df8fc7c5b1baa1c7fa561366f24cb77f0de0a79fe31389ce79d263b9de6ba23ec864fe66f6f32383a0d5080890794085d2f3c95632be37fce615b8ee
7
+ data.tar.gz: c46c715f9a11543e910cea93a8bc087aa02daab854ca8baa2e8d993496ce5bed06690957e43cb5e9c50a317b6db0dacd6f453c69d9ff17d6aa0ba756df11e654
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "ruby2_keywords"
3
4
  require "rspec/core"
4
5
  require "rspec/core/formatters/base_formatter"
5
6
 
@@ -20,7 +21,7 @@ module AllureRspec
20
21
 
21
22
  RSpec::Core::Example.class_eval do
22
23
  Allure.singleton_methods.each do |method|
23
- define_method(method) { |*args, &block| Allure.__send__(method, *args, &block) }
24
+ ruby2_keywords define_method(method) { |*args, &block| Allure.__send__(method, *args, &block) }
24
25
  end
25
26
  end
26
27
 
@@ -48,6 +48,21 @@ module AllureRspec
48
48
 
49
49
  private
50
50
 
51
+ # @param [RSpec::Core::Example] example
52
+ # @return [Array<Allure::Label>]
53
+ def links(example)
54
+ tms_links(example.metadata) + issue_links(example.metadata)
55
+ end
56
+
57
+ # Get allure status from result
58
+ # @param [RSpec::Core::Example::ExecutionResult] result
59
+ # @return [Symbol]
60
+ def status(result)
61
+ return Allure::ResultUtils.status(result.exception) if result.status == :failed
62
+
63
+ ALLURE_STATUS[result.status]
64
+ end
65
+
51
66
  # @param [RSpec::Core::Example] example
52
67
  # @return [Array<Allure::Label>]
53
68
  def labels(example)
@@ -58,8 +73,8 @@ module AllureRspec
58
73
  labels << Allure::ResultUtils.story_label(example.description)
59
74
  labels << Allure::ResultUtils.test_class_label(File.basename(example.file_path, ".rb"))
60
75
  labels << severity(example.metadata)
61
- labels.push(*suite_labels(example.example_group))
62
76
  labels.push(*tag_labels(example.metadata))
77
+ labels.push(*suite_labels(example.example_group))
63
78
  end
64
79
  end
65
80
 
@@ -67,28 +82,30 @@ module AllureRspec
67
82
  # @param [RSpec::Core::ExampleGroup] example_group
68
83
  # @return [Array<Allure::Label>]
69
84
  def suite_labels(example_group)
70
- example_group.parent_groups.map(&:description).yield_self do |parents|
71
- [].tap do |labels|
72
- labels << Allure::ResultUtils.suite_label((parents.length == 1) ? parents.last : parents[-2])
73
- labels << Allure::ResultUtils.parent_suite_label(parents.last) if parents.length > 1
74
- labels << Allure::ResultUtils.sub_suite_label(parents[0..-3].join(" > ")) if parents.length > 2
75
- end
85
+ [].tap do |labels|
86
+ parents = example_group.parent_groups.map(&:description)
87
+ labels << Allure::ResultUtils.suite_label(suite(parents))
88
+ labels << Allure::ResultUtils.parent_suite_label(parent_suite(parents))
89
+ labels << Allure::ResultUtils.sub_suite_label(sub_suites(parents))
76
90
  end
77
91
  end
78
92
 
79
- # @param [RSpec::Core::Example] example
80
- # @return [Array<Allure::Label>]
81
- def links(example)
82
- tms_links(example.metadata) + issue_links(example.metadata)
93
+ # @param [Array<String>] parents
94
+ # @return [String]
95
+ def suite(parents)
96
+ parents.length == 1 ? parents.last : parents[-2]
83
97
  end
84
98
 
85
- # Get allure status from result
86
- # @param [RSpec::Core::Example::ExecutionResult] result
87
- # @return [Symbol]
88
- def status(result)
89
- return Allure::ResultUtils.status(result.exception) if result.status == :failed
99
+ # @param [Array<String>] parents
100
+ # @return [String]
101
+ def parent_suite(parents)
102
+ parents.length > 1 ? parents.last : nil
103
+ end
90
104
 
91
- ALLURE_STATUS[result.status]
105
+ # @param [Array<String>] parents
106
+ # @return [String]
107
+ def sub_suites(parents)
108
+ parents.length > 2 ? parents[0..-3].join(" > ") : nil
92
109
  end
93
110
 
94
111
  # Strip relative ./ form path
@@ -7,27 +7,23 @@ module AllureRspec
7
7
  # @param [Hash] metadata
8
8
  # @return [Array<Allure::Label>]
9
9
  def tag_labels(metadata)
10
- return [] unless Allure::Config.link_tms_pattern && metadata.keys.any? { |k| allure?(k) }
10
+ return [] unless metadata.keys.any? { |k| allure?(k) }
11
11
 
12
- metadata.select { |k, _v| allure?(k) }.values.map { |v| Allure::ResultUtils.tag_label(v) }
12
+ metadata.select { |k| allure?(k) }.values.map { |v| Allure::ResultUtils.tag_label(v) }
13
13
  end
14
14
 
15
15
  # Get tms links
16
16
  # @param [Hash] metadata
17
17
  # @return [Array<Allure::Link>]
18
18
  def tms_links(metadata)
19
- return [] unless Allure::Config.link_tms_pattern && metadata.keys.any? { |k| tms?(k) }
20
-
21
- metadata.select { |k, _v| tms?(k) }.values.map { |v| Allure::ResultUtils.tms_link(v) }
19
+ matching_links(metadata, :tms)
22
20
  end
23
21
 
24
22
  # Get issue links
25
23
  # @param [Hash] metadata
26
24
  # @return [Array<Allure::Link>]
27
25
  def issue_links(metadata)
28
- return [] unless Allure::Config.link_issue_pattern && metadata.keys.any? { |k| issue?(k) }
29
-
30
- metadata.select { |k, _v| issue?(k) }.values.map { |v| Allure::ResultUtils.issue_link(v) }
26
+ matching_links(metadata, :issue)
31
27
  end
32
28
 
33
29
  # Get severity
@@ -50,6 +46,19 @@ module AllureRspec
50
46
 
51
47
  private
52
48
 
49
+ # @param [Hash] metadata
50
+ # @param [Symbol] type
51
+ # @return [Array<Allure::Link>]
52
+ def matching_links(metadata, type)
53
+ unless Allure::Config.public_send("link_#{type}_pattern") && metadata.keys.any? { |k| __send__("#{type}?", k) }
54
+ return []
55
+ end
56
+
57
+ metadata
58
+ .select { |k| __send__("#{type}?", k) }.values
59
+ .map { |v| Allure::ResultUtils.public_send("#{type}_link", v) }
60
+ end
61
+
53
62
  # Does key match custom allure label
54
63
  # @param [Symbol] key
55
64
  # @return [boolean]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: allure-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.13.3
4
+ version: 2.13.4
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-01-07 00:00:00.000000000 Z
11
+ date: 2020-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: allure-ruby-commons
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 2.13.3
19
+ version: 2.13.4
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 2.13.3
26
+ version: 2.13.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec-core
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.8'
41
+ - !ruby/object:Gem::Dependency
42
+ name: ruby2_keywords
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.0.2
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.0.2
41
55
  description: Cucumber adaptor to generate rich allure test reports
42
56
  email: andrejs.cunskis@gmail.com
43
57
  executables: []
@@ -73,7 +87,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
87
  - !ruby/object:Gem::Version
74
88
  version: '0'
75
89
  requirements: []
76
- rubygems_version: 3.0.3
90
+ rubygems_version: 3.1.2
77
91
  signing_key:
78
92
  specification_version: 4
79
93
  summary: Allure rspec ruby adaptor