rspec-xunit 0.6.0 → 0.7.0

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: 299943c479de4ea203b6feeedf989a0521f68e70fb577753d477dbceb022e59b
4
- data.tar.gz: df306b202b8bf9c61ff1ad3c1426425565bd3e5742fe7be0891f37bcc2737401
3
+ metadata.gz: '04009d5542971db2f091421378bd23230927d68f9e9460732f86e4346b6b4cb2'
4
+ data.tar.gz: d1bdc1445ef25609d1840169dd721cf3231c91f2f9a37635f016ec3d9f0e7af7
5
5
  SHA512:
6
- metadata.gz: 25dbc4a0a9a5781deca309ab71bb8c1324c23aa3d1a04166efb520aebe8aadb1cd366db33cf5c31cd87eab0033159ebc11753211e72f9db12ac4e2d9664c9ab1
7
- data.tar.gz: 242ee142fe42210f19d804ab55e946de5e924b19d529135fb7d492d8a159ac2dc3f8a23fb6635fc8459d14c94b7a6d8efe61c5576fc035f01293c7d9a86fa4e5
6
+ metadata.gz: 22ebc3763e0dd50d6740df2d8d3fdc3bef5f954ae66e7d65913985ceffdf6628645a67fb4754c5db33c6a34389a95d1c4e17415b9205de86c6231bb0f7388410
7
+ data.tar.gz: 36db704352be7b0c495e2c0692930c664578e148be19575cf90d8826ea307b4c2cfde9ba3695700181dbbc15f10e5f5a0bc8e319212ab76a70857dc4fef1ac10
@@ -13,39 +13,37 @@ module RSpec
13
13
  #
14
14
  # - `assert_eq` roughly `expect(action).to eq(expected)`
15
15
  # - `assert_not_eq` roughly `expect(action).to_not eq(expected)`
16
- def assertion_match(matcher, suffix = matcher)
17
- define_method "assert_#{suffix}" do |value, *args, &block|
18
- expect(value).to send(matcher, *args, &block)
19
- rescue Expectations::ExpectationNotMetError => e
20
- raise e, e.message, adjust_for_better_failure_message(e.backtrace), cause: nil
21
- end
22
-
23
- define_method "assert_not_#{suffix}" do |value, *args, &block|
24
- expect(value).to_not send(matcher, *args, &block)
25
- rescue Expectations::ExpectationNotMetError => e
26
- raise e, e.message, adjust_for_better_failure_message(e.backtrace), cause: nil
27
- end
28
- end
29
-
30
- # Assertion match block converts RSpec block matchers into XUnit
31
- # friendly assertions.
32
16
  #
33
- # For example, `assertion_match_block :raises, :raise_error` will
34
- # generate two methods:
17
+ # For block expectation, `assertion_match :raises, :raise_error, block: true`
18
+ # will generate two methods:
35
19
  #
36
20
  # - `assert_raises` roughly `expect { bloc }.to raise_error`
37
21
  # - `assert_not_raises` roughly `expect { bloc }.to_not raise_error`
38
- def assertion_match_block(matcher, suffix = matcher)
39
- define_method "assert_#{suffix}" do |*args, &block|
40
- expect(&block).to send(matcher, *args)
41
- rescue Expectations::ExpectationNotMetError => e
42
- raise e, e.message, adjust_for_better_failure_message(e.backtrace), cause: nil
43
- end
22
+ def assertion_match(matcher, suffix = matcher, block: false)
23
+ if block
24
+ define_method "assert_#{suffix}" do |*args, &block|
25
+ expect(&block).to send(matcher, *args)
26
+ rescue Expectations::ExpectationNotMetError => e
27
+ raise e, e.message, adjust_for_better_failure_message(e.backtrace), cause: nil
28
+ end
29
+
30
+ define_method "assert_not_#{suffix}" do |*args, &block|
31
+ expect(&block).to_not send(matcher, *args)
32
+ rescue Expectations::ExpectationNotMetError => e
33
+ raise e, e.message, adjust_for_better_failure_message(e.backtrace), cause: nil
34
+ end
35
+ else
36
+ define_method "assert_#{suffix}" do |value, *args, &blk|
37
+ expect(value).to send(matcher, *args, &blk)
38
+ rescue Expectations::ExpectationNotMetError => e
39
+ raise e, e.message, adjust_for_better_failure_message(e.backtrace), cause: nil
40
+ end
44
41
 
45
- define_method "assert_not_#{suffix}" do |*args, &block|
46
- expect(&block).to_not send(matcher, *args)
47
- rescue Expectations::ExpectationNotMetError => e
48
- raise e, e.message, adjust_for_better_failure_message(e.backtrace), cause: nil
42
+ define_method "assert_not_#{suffix}" do |value, *args, &blk|
43
+ expect(value).to_not send(matcher, *args, &blk)
44
+ rescue Expectations::ExpectationNotMetError => e
45
+ raise e, e.message, adjust_for_better_failure_message(e.backtrace), cause: nil
46
+ end
49
47
  end
50
48
  end
51
49
  end
@@ -60,8 +58,8 @@ module RSpec
60
58
  assertion_match :be_between, :between
61
59
  assertion_match :be_within, :within
62
60
 
63
- assertion_match_block :raise_error, :raise
64
- assertion_match_block :raise_error, :raises
61
+ assertion_match :raise_error, :raise, block: true
62
+ assertion_match :raise_error, :raises, block: true
65
63
 
66
64
  # Exceptions to the block matcher rule.
67
65
  assertion_match :satisfy
@@ -106,6 +104,7 @@ module RSpec
106
104
  private
107
105
 
108
106
  ASSERTION_REGEX = /^assert_(.*)$/.freeze
107
+ ASSERTION_NEGATIVE_REGEX = /^assert_not_(.*)$/.freeze
109
108
  ASSERTION_PREDICATE_REGEX = /^assert_(.*)\?$/.freeze
110
109
  ASSERTION_NEGATIVE_PREDICATE_REGEX = /^assert_not_(.*)\?$/.freeze
111
110
 
@@ -124,18 +123,24 @@ module RSpec
124
123
  expect(value).to Matchers::BuiltIn::BePredicate.new(matcher, *args, &block)
125
124
  end
126
125
 
126
+ return if ASSERTION_NEGATIVE_REGEX.match(method.to_s) do |match|
127
+ matcher = match[1]
128
+
129
+ RSpec::XUnit::Assertions.module_eval do
130
+ assertion_match matcher, block: block
131
+ end
132
+
133
+ send "assert_not_#{matcher}", *args, &block
134
+ end
135
+
127
136
  return if ASSERTION_REGEX.match(method.to_s) do |match|
128
137
  matcher = match[1]
129
138
 
130
139
  RSpec::XUnit::Assertions.module_eval do
131
- if block.nil?
132
- assertion_match matcher
133
- else
134
- assertion_match_block matcher
135
- end
140
+ assertion_match matcher, block: block
136
141
  end
137
142
 
138
- send "assert_#{match[1]}", *args, &block
143
+ send "assert_#{matcher}", *args, &block
139
144
  end
140
145
 
141
146
  super
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RSpec
4
4
  module XUnit
5
- VERSION = '0.6.0'
5
+ VERSION = '0.7.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-xunit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genadi Samokovarov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-10 00:00:00.000000000 Z
11
+ date: 2020-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec-core