rspec-core 3.0.1 → 3.0.2
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +1 -1
- data/Changelog.md +31 -1
- data/lib/rspec/core/configuration.rb +14 -7
- data/lib/rspec/core/configuration_options.rb +6 -6
- data/lib/rspec/core/hooks.rb +3 -1
- data/lib/rspec/core/metadata.rb +23 -5
- data/lib/rspec/core/metadata_filter.rb +23 -14
- data/lib/rspec/core/notifications.rb +38 -14
- data/lib/rspec/core/version.rb +1 -1
- metadata +3 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c5447ecf782b107af7573626ade27fdf62fb0307
|
|
4
|
+
data.tar.gz: ca82f9eb6c9f35b3c0b59c104eeb34752320cab2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2452515ed3b91a42b6afda517a914819e73c6fbfce3e8cc724ca7067388e9f75318cf62a1ca7787529d5cec8c8c0d7441ebe3f475fd5f64ebfa7c29db2d88b24
|
|
7
|
+
data.tar.gz: d4de137f453c1188858c4e5a77a208182f24f7dce0241f04691217082aaf601fc88faacdfcb5fbbb5ab4470fbfd51bf197fa995a85e069629011b2b12039acd4
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data.tar.gz.sig
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
�_@�+�חb4ұTi��;Y�n��� �&��w��v08�:RĦx�OAC��_�tb4�_��-9�{�9t���R��iS}�ע|4�՟�v]��j����|D/kFWyK:� }F��Y�B���!�x5�۸g� �[i��uG��ۚH5e
|
data/Changelog.md
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
### 3.0.2 / 2014-06-19
|
|
2
|
+
[Full Changelog](http://github.com/rspec/rspec-core/compare/v3.0.1...v3.0.2)
|
|
3
|
+
|
|
4
|
+
Bug Fixes:
|
|
5
|
+
|
|
6
|
+
* Fix regression in CLI option handling that prevented `--tag slow`
|
|
7
|
+
passed at the command line from overriding `--tag ~slow` in `.rspec`.
|
|
8
|
+
(Colin Jones, #1602)
|
|
9
|
+
* Fix metadata `:example_group` deprecation warning so that it gets
|
|
10
|
+
issued at the call site of the configuration that specified it as
|
|
11
|
+
a filter rather than later when an example group is defined.
|
|
12
|
+
(Myron Marston, #1562)
|
|
13
|
+
* Make the line that is printed when a shared example group fails indicating
|
|
14
|
+
where the concrete example group is white, separating it from the stack trace
|
|
15
|
+
that is produced for the failure. (Sam Phippen, Jon Rowe, #1606)
|
|
16
|
+
|
|
1
17
|
### 3.0.1 / 2014-06-12
|
|
2
18
|
[Full Changelog](http://github.com/rspec/rspec-core/compare/v3.0.0...v3.0.1)
|
|
3
19
|
|
|
@@ -275,7 +291,7 @@ Bug Fixes:
|
|
|
275
291
|
or `default_path`. (Matijs van Zuijlen)
|
|
276
292
|
|
|
277
293
|
### 3.0.0.beta1 / 2013-11-07
|
|
278
|
-
[Full Changelog](http://github.com/rspec/rspec-core/compare/v2.99.
|
|
294
|
+
[Full Changelog](http://github.com/rspec/rspec-core/compare/v2.99.1...v3.0.0.beta1)
|
|
279
295
|
|
|
280
296
|
Breaking Changes for 3.0.0:
|
|
281
297
|
|
|
@@ -346,6 +362,20 @@ Deprecations:
|
|
|
346
362
|
longer has an affect now that the behavior it enabled is always
|
|
347
363
|
enabled. (Myron Marston)
|
|
348
364
|
|
|
365
|
+
### 2.99.1 / 2014-06-19
|
|
366
|
+
[Full Changelog](http://github.com/rspec/rspec-core/compare/v2.99.0...v2.99.1)
|
|
367
|
+
|
|
368
|
+
Bug Fixes:
|
|
369
|
+
|
|
370
|
+
* Add missing deprecation warning for when `RSpec::Core::Runner` is used
|
|
371
|
+
multiple times in the same process. In 2.x RSpec's global state was
|
|
372
|
+
automatically cleared between runs but in 3.0 you need to call `RSpec.reset`
|
|
373
|
+
manually in these situations. (Sam Phippen, #1587)
|
|
374
|
+
* Prevent deprecation being accidentally issues when doubles used with `be_`
|
|
375
|
+
matchers due to automatically generated descriptions. (Jon Rowe, #1573)
|
|
376
|
+
* Load `rspec/core` when loading `rspec/core/rake_task` to ensure we can
|
|
377
|
+
issue deprecations correctly. (Jon Rowe, #1612)
|
|
378
|
+
|
|
349
379
|
### 2.99.0 / 2014-06-01
|
|
350
380
|
[Full Changelog](http://github.com/rspec/rspec-core/compare/v2.99.0.rc1...v2.99.0)
|
|
351
381
|
|
|
@@ -850,7 +850,8 @@ module RSpec
|
|
|
850
850
|
#
|
|
851
851
|
# filter_run_including :foo # same as filter_run_including :foo => true
|
|
852
852
|
def filter_run_including(*args)
|
|
853
|
-
|
|
853
|
+
meta = Metadata.build_hash_from(args, :warn_about_example_group_filtering)
|
|
854
|
+
filter_manager.include_with_low_priority meta
|
|
854
855
|
end
|
|
855
856
|
|
|
856
857
|
alias_method :filter_run, :filter_run_including
|
|
@@ -863,7 +864,8 @@ module RSpec
|
|
|
863
864
|
# This overrides any inclusion filters/tags set on the command line or in
|
|
864
865
|
# configuration files.
|
|
865
866
|
def inclusion_filter=(filter)
|
|
866
|
-
|
|
867
|
+
meta = Metadata.build_hash_from([filter], :warn_about_example_group_filtering)
|
|
868
|
+
filter_manager.include_only meta
|
|
867
869
|
end
|
|
868
870
|
|
|
869
871
|
alias_method :filter=, :inclusion_filter=
|
|
@@ -906,7 +908,8 @@ module RSpec
|
|
|
906
908
|
#
|
|
907
909
|
# filter_run_excluding :foo # same as filter_run_excluding :foo => true
|
|
908
910
|
def filter_run_excluding(*args)
|
|
909
|
-
|
|
911
|
+
meta = Metadata.build_hash_from(args, :warn_about_example_group_filtering)
|
|
912
|
+
filter_manager.exclude_with_low_priority meta
|
|
910
913
|
end
|
|
911
914
|
|
|
912
915
|
# Clears and reassigns the `exclusion_filter`. Set to `nil` if you don't
|
|
@@ -917,7 +920,8 @@ module RSpec
|
|
|
917
920
|
# This overrides any exclusion filters/tags set on the command line or in
|
|
918
921
|
# configuration files.
|
|
919
922
|
def exclusion_filter=(filter)
|
|
920
|
-
|
|
923
|
+
meta = Metadata.build_hash_from([filter], :warn_about_example_group_filtering)
|
|
924
|
+
filter_manager.exclude_only meta
|
|
921
925
|
end
|
|
922
926
|
|
|
923
927
|
# Returns the `exclusion_filter`. If none has been set, returns an empty
|
|
@@ -959,7 +963,8 @@ module RSpec
|
|
|
959
963
|
#
|
|
960
964
|
# @see #extend
|
|
961
965
|
def include(mod, *filters)
|
|
962
|
-
|
|
966
|
+
meta = Metadata.build_hash_from(filters, :warn_about_example_group_filtering)
|
|
967
|
+
include_or_extend_modules << [:include, mod, meta]
|
|
963
968
|
end
|
|
964
969
|
|
|
965
970
|
# Tells RSpec to extend example groups with `mod`. Methods defined in
|
|
@@ -992,7 +997,8 @@ module RSpec
|
|
|
992
997
|
#
|
|
993
998
|
# @see #include
|
|
994
999
|
def extend(mod, *filters)
|
|
995
|
-
|
|
1000
|
+
meta = Metadata.build_hash_from(filters, :warn_about_example_group_filtering)
|
|
1001
|
+
include_or_extend_modules << [:extend, mod, meta]
|
|
996
1002
|
end
|
|
997
1003
|
|
|
998
1004
|
# @private
|
|
@@ -1255,7 +1261,8 @@ module RSpec
|
|
|
1255
1261
|
# end
|
|
1256
1262
|
# end
|
|
1257
1263
|
def define_derived_metadata(*filters, &block)
|
|
1258
|
-
|
|
1264
|
+
meta = Metadata.build_hash_from(filters, :warn_about_example_group_filtering)
|
|
1265
|
+
@derived_metadata_blocks << [meta, block]
|
|
1259
1266
|
end
|
|
1260
1267
|
|
|
1261
1268
|
# @private
|
|
@@ -28,8 +28,9 @@ module RSpec
|
|
|
28
28
|
# Updates the provided {FilterManager} based on the filter options.
|
|
29
29
|
# @param filter_manager [FilterManager] instance to update
|
|
30
30
|
def configure_filter_manager(filter_manager)
|
|
31
|
-
@
|
|
32
|
-
|
|
31
|
+
@filter_manager_options.each do |command, value|
|
|
32
|
+
filter_manager.__send__ command, value
|
|
33
|
+
end
|
|
33
34
|
end
|
|
34
35
|
|
|
35
36
|
# @return [Hash] the final merged options, drawn from all external sources
|
|
@@ -38,12 +39,11 @@ module RSpec
|
|
|
38
39
|
private
|
|
39
40
|
|
|
40
41
|
def organize_options
|
|
41
|
-
@
|
|
42
|
-
@filter_manager_exclusions = []
|
|
42
|
+
@filter_manager_options = []
|
|
43
43
|
|
|
44
44
|
@options = (file_options << command_line_options << env_options).each { |opts|
|
|
45
|
-
@
|
|
46
|
-
@
|
|
45
|
+
@filter_manager_options << [:include, opts.delete(:inclusion_filter)] if opts.key?(:inclusion_filter)
|
|
46
|
+
@filter_manager_options << [:exclude, opts.delete(:exclusion_filter)] if opts.key?(:exclusion_filter)
|
|
47
47
|
}.inject(:libs => [], :requires => []) { |hash, opts|
|
|
48
48
|
hash.merge(opts) { |key, oldval, newval|
|
|
49
49
|
[:libs, :requires].include?(key) ? oldval + newval : newval
|
data/lib/rspec/core/hooks.rb
CHANGED
|
@@ -508,7 +508,9 @@ EOS
|
|
|
508
508
|
end
|
|
509
509
|
|
|
510
510
|
def scope_and_options_from(*args)
|
|
511
|
-
|
|
511
|
+
scope = extract_scope_from(args)
|
|
512
|
+
meta = Metadata.build_hash_from(args, :warn_about_example_group_filtering)
|
|
513
|
+
return scope, meta
|
|
512
514
|
end
|
|
513
515
|
|
|
514
516
|
def extract_scope_from(args)
|
data/lib/rspec/core/metadata.rb
CHANGED
|
@@ -43,13 +43,18 @@ module RSpec
|
|
|
43
43
|
# Symbols are converted into hash keys with a value of `true`.
|
|
44
44
|
# This is done to support simple tagging using a symbol, rather
|
|
45
45
|
# than needing to do `:symbol => true`.
|
|
46
|
-
def self.build_hash_from(args)
|
|
46
|
+
def self.build_hash_from(args, warn_about_example_group_filtering=false)
|
|
47
47
|
hash = args.last.is_a?(Hash) ? args.pop : {}
|
|
48
48
|
|
|
49
49
|
while args.last.is_a?(Symbol)
|
|
50
50
|
hash[args.pop] = true
|
|
51
51
|
end
|
|
52
52
|
|
|
53
|
+
if warn_about_example_group_filtering && hash.key?(:example_group)
|
|
54
|
+
RSpec.deprecate("Filtering by an `:example_group` subhash",
|
|
55
|
+
:replacement => "the subhash to filter directly")
|
|
56
|
+
end
|
|
57
|
+
|
|
53
58
|
hash
|
|
54
59
|
end
|
|
55
60
|
|
|
@@ -200,10 +205,23 @@ module RSpec
|
|
|
200
205
|
Proc.new do |hash, key|
|
|
201
206
|
case key
|
|
202
207
|
when :example_group
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
208
|
+
# We commonly get here when rspec-core is applying a previously configured
|
|
209
|
+
# filter rule, such as when a gem configures:
|
|
210
|
+
#
|
|
211
|
+
# RSpec.configure do |c|
|
|
212
|
+
# c.include MyGemHelpers, :example_group => { :file_path => /spec\/my_gem_specs/ }
|
|
213
|
+
# end
|
|
214
|
+
#
|
|
215
|
+
# It's confusing for a user to get a deprecation at this point in the code, so instead
|
|
216
|
+
# we issue a deprecation from the config APIs that take a metadata hash, and MetadataFilter
|
|
217
|
+
# sets this thread local to silence the warning here since it would be so confusing.
|
|
218
|
+
unless RSpec.thread_local_metadata[:silence_metadata_example_group_deprecations]
|
|
219
|
+
RSpec.deprecate("The `:example_group` key in an example group's metadata hash",
|
|
220
|
+
:replacement => "the example group's hash directly for the " +
|
|
221
|
+
"computed keys and `:parent_example_group` to access the parent " +
|
|
222
|
+
"example group metadata")
|
|
223
|
+
end
|
|
224
|
+
|
|
207
225
|
group_hash = example_group_selector.call(hash)
|
|
208
226
|
LegacyExampleGroupHash.new(group_hash) if group_hash
|
|
209
227
|
when :example_group_block
|
|
@@ -20,23 +20,25 @@ module RSpec
|
|
|
20
20
|
|
|
21
21
|
# @private
|
|
22
22
|
def filter_applies?(key, value, metadata)
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
silence_metadata_example_group_deprecations do
|
|
24
|
+
return filter_applies_to_any_value?(key, value, metadata) if Array === metadata[key] && !(Proc === value)
|
|
25
|
+
return location_filter_applies?(value, metadata) if key == :locations
|
|
26
|
+
return filters_apply?(key, value, metadata) if Hash === value
|
|
26
27
|
|
|
27
|
-
|
|
28
|
+
return false unless metadata.has_key?(key)
|
|
28
29
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
case value
|
|
31
|
+
when Regexp
|
|
32
|
+
metadata[key] =~ value
|
|
33
|
+
when Proc
|
|
34
|
+
case value.arity
|
|
35
|
+
when 0 then value.call
|
|
36
|
+
when 2 then value.call(metadata[key], metadata)
|
|
37
|
+
else value.call(metadata[key])
|
|
38
|
+
end
|
|
39
|
+
else
|
|
40
|
+
metadata[key].to_s == value.to_s
|
|
37
41
|
end
|
|
38
|
-
else
|
|
39
|
-
metadata[key].to_s == value.to_s
|
|
40
42
|
end
|
|
41
43
|
end
|
|
42
44
|
|
|
@@ -81,6 +83,13 @@ module RSpec
|
|
|
81
83
|
metadata[:parent_example_group]
|
|
82
84
|
end
|
|
83
85
|
end
|
|
86
|
+
|
|
87
|
+
def silence_metadata_example_group_deprecations
|
|
88
|
+
RSpec.thread_local_metadata[:silence_metadata_example_group_deprecations] = true
|
|
89
|
+
yield
|
|
90
|
+
ensure
|
|
91
|
+
RSpec.thread_local_metadata.delete(:silence_metadata_example_group_deprecations)
|
|
92
|
+
end
|
|
84
93
|
end
|
|
85
94
|
end
|
|
86
95
|
end
|
|
@@ -5,6 +5,13 @@ module RSpec::Core
|
|
|
5
5
|
# with information about a particular event of interest.
|
|
6
6
|
module Notifications
|
|
7
7
|
|
|
8
|
+
# @private
|
|
9
|
+
class NullColorizer
|
|
10
|
+
def wrap(line)
|
|
11
|
+
line
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
8
15
|
# The `StartNotification` represents a notification sent by the reporter
|
|
9
16
|
# when the suite is started. It contains the expected amount of examples
|
|
10
17
|
# to be executed, and the load time of RSpec.
|
|
@@ -147,19 +154,7 @@ module RSpec::Core
|
|
|
147
154
|
#
|
|
148
155
|
# @return [Array(String)] The example failure message
|
|
149
156
|
def message_lines
|
|
150
|
-
|
|
151
|
-
begin
|
|
152
|
-
lines = ["Failure/Error: #{read_failed_line.strip}"]
|
|
153
|
-
lines << "#{exception_class_name}:" unless exception_class_name =~ /RSpec/
|
|
154
|
-
exception.message.to_s.split("\n").each do |line|
|
|
155
|
-
lines << " #{line}" if exception.message
|
|
156
|
-
end
|
|
157
|
-
if shared_group
|
|
158
|
-
lines << "Shared Example Group: \"#{shared_group.metadata[:shared_group_name]}\"" +
|
|
159
|
-
" called from #{backtrace_formatter.backtrace_line(shared_group.location)}"
|
|
160
|
-
end
|
|
161
|
-
lines
|
|
162
|
-
end
|
|
157
|
+
add_shared_group_line(failure_lines, NullColorizer)
|
|
163
158
|
end
|
|
164
159
|
|
|
165
160
|
# Returns the message generated for this failure colorized line by line.
|
|
@@ -167,7 +162,7 @@ module RSpec::Core
|
|
|
167
162
|
# @param colorizer [#wrap] An object to colorize the message_lines by
|
|
168
163
|
# @return [Array(String)] The example failure message colorized
|
|
169
164
|
def colorized_message_lines(colorizer = ::RSpec::Core::Formatters::ConsoleCodes)
|
|
170
|
-
|
|
165
|
+
add_shared_group_line(failure_lines, colorizer).map do |line|
|
|
171
166
|
colorizer.wrap line, RSpec.configuration.failure_color
|
|
172
167
|
end
|
|
173
168
|
end
|
|
@@ -217,10 +212,39 @@ module RSpec::Core
|
|
|
217
212
|
name
|
|
218
213
|
end
|
|
219
214
|
|
|
215
|
+
def failure_lines
|
|
216
|
+
@failure_lines ||=
|
|
217
|
+
begin
|
|
218
|
+
lines = ["Failure/Error: #{read_failed_line.strip}"]
|
|
219
|
+
lines << "#{exception_class_name}:" unless exception_class_name =~ /RSpec/
|
|
220
|
+
exception.message.to_s.split("\n").each do |line|
|
|
221
|
+
lines << " #{line}" if exception.message
|
|
222
|
+
end
|
|
223
|
+
lines
|
|
224
|
+
end
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
def add_shared_group_line(lines, colorizer)
|
|
228
|
+
unless shared_group_line == ""
|
|
229
|
+
lines << colorizer.wrap(shared_group_line, RSpec.configuration.default_color)
|
|
230
|
+
end
|
|
231
|
+
lines
|
|
232
|
+
end
|
|
233
|
+
|
|
220
234
|
def shared_group
|
|
221
235
|
@shared_group ||= group_and_parent_groups.find { |group| group.metadata[:shared_group_name] }
|
|
222
236
|
end
|
|
223
237
|
|
|
238
|
+
def shared_group_line
|
|
239
|
+
@shared_group_line ||=
|
|
240
|
+
if shared_group
|
|
241
|
+
"Shared Example Group: \"#{shared_group.metadata[:shared_group_name]}\"" +
|
|
242
|
+
" called from #{backtrace_formatter.backtrace_line(shared_group.location)}"
|
|
243
|
+
else
|
|
244
|
+
""
|
|
245
|
+
end
|
|
246
|
+
end
|
|
247
|
+
|
|
224
248
|
def group_and_parent_groups
|
|
225
249
|
example.example_group.parent_groups + [example.example_group]
|
|
226
250
|
end
|
data/lib/rspec/core/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rspec-core
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.0.
|
|
4
|
+
version: 3.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Steven Baker
|
|
@@ -34,7 +34,7 @@ cert_chain:
|
|
|
34
34
|
1yHC1AcSYpvi2dAbOiHT5iQF+krm4wse8KctXgTNnjMsHEoGKulJS2/sZl90jcCz
|
|
35
35
|
muA=
|
|
36
36
|
-----END CERTIFICATE-----
|
|
37
|
-
date: 2014-06-
|
|
37
|
+
date: 2014-06-20 00:00:00.000000000 Z
|
|
38
38
|
dependencies:
|
|
39
39
|
- !ruby/object:Gem::Dependency
|
|
40
40
|
name: rspec-support
|
|
@@ -265,6 +265,6 @@ rubyforge_project: rspec
|
|
|
265
265
|
rubygems_version: 2.2.2
|
|
266
266
|
signing_key:
|
|
267
267
|
specification_version: 4
|
|
268
|
-
summary: rspec-core-3.0.
|
|
268
|
+
summary: rspec-core-3.0.2
|
|
269
269
|
test_files: []
|
|
270
270
|
has_rdoc:
|
metadata.gz.sig
CHANGED
|
Binary file
|