rspec-core 2.99.2 → 3.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +14 -6
- checksums.yaml.gz.sig +2 -0
- data.tar.gz.sig +0 -0
- data/Changelog.md +103 -191
- data/License.txt +1 -0
- data/README.md +4 -25
- data/features/Upgrade.md +2 -14
- data/features/command_line/dry_run.feature +29 -0
- data/features/command_line/example_name_option.feature +1 -1
- data/features/command_line/fail_fast.feature +26 -0
- data/features/command_line/format_option.feature +3 -3
- data/features/command_line/line_number_option.feature +16 -11
- data/features/command_line/order.feature +2 -3
- data/features/command_line/pattern_option.feature +3 -3
- data/features/command_line/randomization.feature +63 -0
- data/features/command_line/require_option.feature +2 -2
- data/features/command_line/ruby.feature +1 -1
- data/features/configuration/alias_example_to.feature +13 -22
- data/features/configuration/{backtrace_clean_patterns.feature → backtrace_exclusion_patterns.feature} +17 -14
- data/features/configuration/custom_settings.feature +11 -11
- data/features/configuration/overriding_global_ordering.feature +93 -0
- data/features/configuration/profile.feature +13 -13
- data/features/configuration/read_options_from_file.feature +7 -7
- data/features/example_groups/basic_structure.feature +1 -1
- data/features/example_groups/shared_context.feature +8 -8
- data/features/example_groups/shared_examples.feature +6 -14
- data/features/expectation_framework_integration/configure_expectation_framework.feature +27 -122
- data/features/filtering/exclusion_filters.feature +2 -5
- data/features/filtering/inclusion_filters.feature +1 -5
- data/features/formatters/json_formatter.feature +2 -2
- data/features/formatters/text_formatter.feature +4 -4
- data/features/helper_methods/arbitrary_methods.feature +2 -2
- data/features/helper_methods/let.feature +5 -5
- data/features/helper_methods/modules.feature +5 -8
- data/features/hooks/around_hooks.feature +2 -2
- data/features/hooks/before_and_after_hooks.feature +14 -14
- data/features/hooks/filtering.feature +12 -14
- data/features/metadata/described_class.feature +1 -1
- data/features/metadata/user_defined.feature +16 -29
- data/features/mock_framework_integration/use_flexmock.feature +1 -1
- data/features/mock_framework_integration/use_mocha.feature +1 -1
- data/features/mock_framework_integration/use_rr.feature +1 -1
- data/features/mock_framework_integration/use_rspec.feature +5 -5
- data/features/pending/pending_examples.feature +5 -5
- data/features/spec_files/arbitrary_file_suffix.feature +1 -1
- data/features/step_definitions/additional_cli_steps.rb +3 -3
- data/features/subject/explicit_subject.feature +8 -8
- data/features/subject/implicit_receiver.feature +29 -0
- data/features/subject/implicit_subject.feature +4 -4
- data/features/support/env.rb +10 -3
- data/features/support/require_expect_syntax_in_aruba_specs.rb +16 -0
- data/lib/rspec/core.rb +11 -48
- data/lib/rspec/core/backport_random.rb +302 -0
- data/lib/rspec/core/backtrace_formatter.rb +65 -0
- data/lib/rspec/core/command_line.rb +7 -18
- data/lib/rspec/core/configuration.rb +202 -507
- data/lib/rspec/core/configuration_options.rb +17 -30
- data/lib/rspec/core/example.rb +29 -39
- data/lib/rspec/core/example_group.rb +166 -259
- data/lib/rspec/core/filter_manager.rb +30 -47
- data/lib/rspec/core/flat_map.rb +17 -0
- data/lib/rspec/core/formatters.rb +0 -138
- data/lib/rspec/core/formatters/base_formatter.rb +46 -1
- data/lib/rspec/core/formatters/base_text_formatter.rb +38 -61
- data/lib/rspec/core/formatters/deprecation_formatter.rb +21 -52
- data/lib/rspec/core/formatters/helpers.rb +0 -28
- data/lib/rspec/core/formatters/html_formatter.rb +1 -1
- data/lib/rspec/core/formatters/json_formatter.rb +38 -9
- data/lib/rspec/core/formatters/snippet_extractor.rb +14 -5
- data/lib/rspec/core/hooks.rb +55 -39
- data/lib/rspec/core/memoized_helpers.rb +17 -167
- data/lib/rspec/core/metadata.rb +16 -64
- data/lib/rspec/core/option_parser.rb +30 -39
- data/lib/rspec/core/ordering.rb +154 -0
- data/lib/rspec/core/pending.rb +12 -69
- data/lib/rspec/core/project_initializer.rb +12 -10
- data/lib/rspec/core/rake_task.rb +5 -108
- data/lib/rspec/core/reporter.rb +15 -18
- data/lib/rspec/core/runner.rb +16 -30
- data/lib/rspec/core/shared_context.rb +3 -5
- data/lib/rspec/core/shared_example_group.rb +3 -51
- data/lib/rspec/core/shared_example_group/collection.rb +1 -19
- data/lib/rspec/core/version.rb +1 -1
- data/lib/rspec/core/warnings.rb +22 -0
- data/lib/rspec/core/world.rb +12 -8
- data/spec/command_line/order_spec.rb +20 -23
- data/spec/rspec/core/backtrace_formatter_spec.rb +216 -0
- data/spec/rspec/core/command_line_spec.rb +32 -48
- data/spec/rspec/core/configuration_options_spec.rb +19 -50
- data/spec/rspec/core/configuration_spec.rb +142 -713
- data/spec/rspec/core/drb_command_line_spec.rb +2 -0
- data/spec/rspec/core/dsl_spec.rb +0 -1
- data/spec/rspec/core/example_group_spec.rb +192 -223
- data/spec/rspec/core/example_spec.rb +40 -16
- data/spec/rspec/core/filter_manager_spec.rb +2 -2
- data/spec/rspec/core/formatters/base_formatter_spec.rb +0 -41
- data/spec/rspec/core/formatters/base_text_formatter_spec.rb +5 -123
- data/spec/rspec/core/formatters/deprecation_formatter_spec.rb +2 -87
- data/spec/rspec/core/formatters/documentation_formatter_spec.rb +2 -3
- data/spec/rspec/core/formatters/{text_mate_formatted.html → html_formatted-1.8.7-jruby.html} +44 -25
- data/spec/rspec/core/formatters/html_formatted-1.8.7-rbx.html +477 -0
- data/spec/rspec/core/formatters/{html_formatted.html → html_formatted-1.8.7.html} +42 -25
- data/spec/rspec/core/formatters/html_formatted-1.9.2.html +425 -0
- data/spec/rspec/core/formatters/html_formatted-1.9.3-jruby.html +416 -0
- data/spec/rspec/core/formatters/html_formatted-1.9.3-rbx.html +477 -0
- data/spec/rspec/core/formatters/html_formatted-1.9.3.html +419 -0
- data/spec/rspec/core/formatters/html_formatted-2.0.0.html +425 -0
- data/spec/rspec/core/formatters/html_formatter_spec.rb +21 -46
- data/spec/rspec/core/formatters/json_formatter_spec.rb +97 -8
- data/spec/rspec/core/hooks_filtering_spec.rb +5 -5
- data/spec/rspec/core/hooks_spec.rb +61 -47
- data/spec/rspec/core/memoized_helpers_spec.rb +20 -322
- data/spec/rspec/core/metadata_spec.rb +1 -24
- data/spec/rspec/core/option_parser_spec.rb +20 -62
- data/spec/rspec/core/ordering_spec.rb +102 -0
- data/spec/rspec/core/pending_example_spec.rb +0 -40
- data/spec/rspec/core/project_initializer_spec.rb +1 -25
- data/spec/rspec/core/rake_task_spec.rb +5 -72
- data/spec/rspec/core/random_spec.rb +47 -0
- data/spec/rspec/core/reporter_spec.rb +23 -48
- data/spec/rspec/core/runner_spec.rb +31 -39
- data/spec/rspec/core/shared_context_spec.rb +3 -15
- data/spec/rspec/core/shared_example_group/collection_spec.rb +4 -17
- data/spec/rspec/core/shared_example_group_spec.rb +12 -45
- data/spec/rspec/core/{deprecation_spec.rb → warnings_spec.rb} +3 -1
- data/spec/rspec/core_spec.rb +4 -21
- data/spec/spec_helper.rb +41 -5
- data/spec/support/helper_methods.rb +0 -29
- data/spec/support/sandboxed_mock_space.rb +0 -16
- data/spec/support/shared_example_groups.rb +7 -36
- data/spec/support/stderr_splitter.rb +36 -0
- metadata +163 -157
- metadata.gz.sig +1 -0
- data/exe/autospec +0 -13
- data/features/Autotest.md +0 -38
- data/features/configuration/treat_symbols_as_metadata_keys_with_true_values.feature +0 -52
- data/features/subject/attribute_of_subject.feature +0 -124
- data/features/subject/one_liner_syntax.feature +0 -71
- data/lib/autotest/discover.rb +0 -10
- data/lib/autotest/rspec2.rb +0 -77
- data/lib/rspec/core/backtrace_cleaner.rb +0 -46
- data/lib/rspec/core/backward_compatibility.rb +0 -55
- data/lib/rspec/core/caller_filter.rb +0 -60
- data/lib/rspec/core/deprecated_mutable_array_proxy.rb +0 -32
- data/lib/rspec/core/deprecation.rb +0 -26
- data/lib/rspec/core/extensions/instance_eval_with_args.rb +0 -44
- data/lib/rspec/core/extensions/kernel.rb +0 -9
- data/lib/rspec/core/extensions/module_eval_with_args.rb +0 -38
- data/lib/rspec/core/extensions/ordered.rb +0 -27
- data/lib/rspec/core/formatters/console_codes.rb +0 -42
- data/lib/rspec/core/formatters/text_mate_formatter.rb +0 -34
- data/lib/rspec/core/metadata_hash_builder.rb +0 -97
- data/lib/rspec/core/minitest_assertions_adapter.rb +0 -28
- data/lib/rspec/core/test_unit_assertions_adapter.rb +0 -30
- data/spec/autotest/discover_spec.rb +0 -49
- data/spec/autotest/failed_results_re_spec.rb +0 -45
- data/spec/autotest/rspec_spec.rb +0 -133
- data/spec/rspec/core/backtrace_cleaner_spec.rb +0 -68
- data/spec/rspec/core/caller_filter_spec.rb +0 -58
- data/spec/rspec/core/deprecations_spec.rb +0 -59
- data/spec/rspec/core/formatters/console_codes_spec.rb +0 -50
- data/spec/rspec/core/formatters/text_mate_formatter_spec.rb +0 -107
- data/spec/rspec/core/kernel_extensions_spec.rb +0 -9
- data/spec/rspec/core/pending_spec.rb +0 -27
- data/spec/support/silence_dsl_deprecations.rb +0 -32
@@ -350,6 +350,45 @@ describe RSpec::Core::Example, :parent_metadata => 'sample' do
|
|
350
350
|
expect(actual.__id__).to eq(exception.__id__)
|
351
351
|
end
|
352
352
|
end
|
353
|
+
|
354
|
+
context "with --dry-run" do
|
355
|
+
before { RSpec.configuration.dry_run = true }
|
356
|
+
|
357
|
+
it "does not execute any examples or hooks" do
|
358
|
+
executed = []
|
359
|
+
|
360
|
+
RSpec.configure do |c|
|
361
|
+
c.before(:each) { executed << :before_each_config }
|
362
|
+
c.before(:all) { executed << :before_all_config }
|
363
|
+
c.after(:each) { executed << :after_each_config }
|
364
|
+
c.after(:all) { executed << :after_all_config }
|
365
|
+
c.around(:each) { |ex| executed << :around_each_config; ex.run }
|
366
|
+
end
|
367
|
+
|
368
|
+
group = RSpec::Core::ExampleGroup.describe do
|
369
|
+
before(:all) { executed << :before_all }
|
370
|
+
before(:each) { executed << :before_each }
|
371
|
+
after(:all) { executed << :after_all }
|
372
|
+
after(:each) { executed << :after_each }
|
373
|
+
around(:each) { |ex| executed << :around_each; ex.run }
|
374
|
+
|
375
|
+
example { executed << :example }
|
376
|
+
|
377
|
+
context "nested" do
|
378
|
+
before(:all) { executed << :nested_before_all }
|
379
|
+
before(:each) { executed << :nested_before_each }
|
380
|
+
after(:all) { executed << :nested_after_all }
|
381
|
+
after(:each) { executed << :nested_after_each }
|
382
|
+
around(:each) { |ex| executed << :nested_around_each; ex.run }
|
383
|
+
|
384
|
+
example { executed << :nested_example }
|
385
|
+
end
|
386
|
+
end
|
387
|
+
|
388
|
+
group.run
|
389
|
+
expect(executed).to eq([])
|
390
|
+
end
|
391
|
+
end
|
353
392
|
end
|
354
393
|
|
355
394
|
describe "#pending" do
|
@@ -462,7 +501,7 @@ describe RSpec::Core::Example, :parent_metadata => 'sample' do
|
|
462
501
|
context { example { values << rand } }
|
463
502
|
end.run
|
464
503
|
|
465
|
-
expect(values.uniq).to
|
504
|
+
expect(values.uniq.count).to eq(2)
|
466
505
|
end
|
467
506
|
|
468
507
|
describe "optional block argument" do
|
@@ -472,21 +511,6 @@ describe RSpec::Core::Example, :parent_metadata => 'sample' do
|
|
472
511
|
end
|
473
512
|
end
|
474
513
|
|
475
|
-
%w[example running_example].each do |accessor|
|
476
|
-
describe accessor do
|
477
|
-
before { allow_deprecation }
|
478
|
-
|
479
|
-
it "is deprecated" do
|
480
|
-
expect_warn_deprecation_with_call_site(__FILE__, __LINE__ + 1, /#{accessor}/)
|
481
|
-
send(accessor)
|
482
|
-
end
|
483
|
-
|
484
|
-
it "returns the current running example" do |ex|
|
485
|
-
expect(send(accessor)).to eq ex
|
486
|
-
end
|
487
|
-
end
|
488
|
-
end
|
489
|
-
|
490
514
|
describe "setting the current example" do
|
491
515
|
it "sets RSpec.current_example to the example that is currently running" do
|
492
516
|
group = RSpec::Core::ExampleGroup.describe("an example group")
|
@@ -165,7 +165,7 @@ module RSpec::Core
|
|
165
165
|
describe "#inclusions#description" do
|
166
166
|
it 'cleans up the description' do
|
167
167
|
project_dir = File.expand_path('.')
|
168
|
-
expect(lambda { }.inspect).to include(project_dir)
|
168
|
+
expect(lambda { }.inspect).to include(project_dir)
|
169
169
|
expect(lambda { }.inspect).to include(' (lambda)') if RUBY_VERSION > '1.9'
|
170
170
|
expect(lambda { }.inspect).to include('0x')
|
171
171
|
|
@@ -181,7 +181,7 @@ module RSpec::Core
|
|
181
181
|
describe "#exclusions#description" do
|
182
182
|
it 'cleans up the description' do
|
183
183
|
project_dir = File.expand_path('.')
|
184
|
-
expect(lambda { }.inspect).to include(project_dir)
|
184
|
+
expect(lambda { }.inspect).to include(project_dir)
|
185
185
|
expect(lambda { }.inspect).to include(' (lambda)') if RUBY_VERSION > '1.9'
|
186
186
|
expect(lambda { }.inspect).to include('0x')
|
187
187
|
|
@@ -6,26 +6,6 @@ describe RSpec::Core::Formatters::BaseFormatter do
|
|
6
6
|
let(:output) { StringIO.new }
|
7
7
|
let(:formatter) { RSpec::Core::Formatters::BaseFormatter.new(output) }
|
8
8
|
|
9
|
-
describe "backtrace_line" do
|
10
|
-
it "trims current working directory" do
|
11
|
-
expect(formatter.__send__(:backtrace_line, File.expand_path(__FILE__))).to eq("./spec/rspec/core/formatters/base_formatter_spec.rb")
|
12
|
-
end
|
13
|
-
|
14
|
-
it "leaves the original line intact" do
|
15
|
-
original_line = File.expand_path(__FILE__)
|
16
|
-
formatter.__send__(:backtrace_line, original_line)
|
17
|
-
expect(original_line).to eq(File.expand_path(__FILE__))
|
18
|
-
end
|
19
|
-
|
20
|
-
it "deals gracefully with a security error" do
|
21
|
-
safely do
|
22
|
-
formatter.__send__(:backtrace_line, __FILE__)
|
23
|
-
# on some rubies, this doesn't raise a SecurityError; this test just
|
24
|
-
# assures that if it *does* raise an error, the error is caught inside
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
9
|
describe "read_failed_line" do
|
30
10
|
it "deals gracefully with a heterogeneous language stack trace" do
|
31
11
|
exception = double(:Exception, :backtrace => [
|
@@ -84,25 +64,4 @@ describe RSpec::Core::Formatters::BaseFormatter do
|
|
84
64
|
|
85
65
|
end
|
86
66
|
end
|
87
|
-
|
88
|
-
describe "#format_backtrace" do
|
89
|
-
let(:rspec_expectations_dir) { "/path/to/rspec-expectations/lib" }
|
90
|
-
let(:rspec_core_dir) { "/path/to/rspec-core/lib" }
|
91
|
-
let(:backtrace) do
|
92
|
-
[
|
93
|
-
"#{rspec_expectations_dir}/rspec/matchers/operator_matcher.rb:51:in `eval_match'",
|
94
|
-
"#{rspec_expectations_dir}/rspec/matchers/operator_matcher.rb:29:in `=='",
|
95
|
-
"./my_spec.rb:5",
|
96
|
-
"#{rspec_core_dir}/rspec/core/example.rb:52:in `run'",
|
97
|
-
"#{rspec_core_dir}/rspec/core/runner.rb:37:in `run'",
|
98
|
-
RSpec::Core::Runner::AT_EXIT_HOOK_BACKTRACE_LINE,
|
99
|
-
"./my_spec.rb:3"
|
100
|
-
]
|
101
|
-
end
|
102
|
-
|
103
|
-
it "removes lines from rspec and lines that come before the invocation of the at_exit autorun hook" do
|
104
|
-
expect(formatter.format_backtrace(backtrace, double.as_null_object)).to eq(["./my_spec.rb:5"])
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
67
|
end
|
@@ -5,16 +5,6 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
5
5
|
let(:output) { StringIO.new }
|
6
6
|
let(:formatter) { RSpec::Core::Formatters::BaseTextFormatter.new(output) }
|
7
7
|
|
8
|
-
context "when closing the formatter", :isolated_directory => true do
|
9
|
-
it 'does not close an already closed output stream' do
|
10
|
-
output = File.new("./output_to_close", "w")
|
11
|
-
formatter = described_class.new(output)
|
12
|
-
output.close
|
13
|
-
|
14
|
-
expect { formatter.close }.not_to raise_error
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
8
|
describe "#summary_line" do
|
19
9
|
it "with 0s outputs pluralized (excluding pending)" do
|
20
10
|
expect(formatter.summary_line(0,0,0)).to eq("0 examples, 0 failures")
|
@@ -155,50 +145,6 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
155
145
|
end
|
156
146
|
end
|
157
147
|
end
|
158
|
-
|
159
|
-
context 'for #share_as' do
|
160
|
-
before { allow(RSpec).to receive(:deprecate) }
|
161
|
-
|
162
|
-
it 'outputs the name and location' do
|
163
|
-
|
164
|
-
group.share_as :FooBar do
|
165
|
-
it("example name") { expect("this").to eq("that") }
|
166
|
-
end
|
167
|
-
|
168
|
-
line = __LINE__.next
|
169
|
-
group.send(:include, FooBar)
|
170
|
-
|
171
|
-
run_all_and_dump_failures
|
172
|
-
|
173
|
-
expect(output.string).to include(
|
174
|
-
'Shared Example Group: "FooBar" called from ' +
|
175
|
-
"./spec/rspec/core/formatters/base_text_formatter_spec.rb:#{line}"
|
176
|
-
)
|
177
|
-
end
|
178
|
-
|
179
|
-
context 'that contains nested example groups' do
|
180
|
-
it 'outputs the name and location' do
|
181
|
-
|
182
|
-
group.share_as :NestedFoo do
|
183
|
-
describe 'nested group' do
|
184
|
-
describe 'hell' do
|
185
|
-
it("example name") { expect("this").to eq("that") }
|
186
|
-
end
|
187
|
-
end
|
188
|
-
end
|
189
|
-
|
190
|
-
line = __LINE__.next
|
191
|
-
group.send(:include, NestedFoo)
|
192
|
-
|
193
|
-
run_all_and_dump_failures
|
194
|
-
|
195
|
-
expect(output.string).to include(
|
196
|
-
'Shared Example Group: "NestedFoo" called from ' +
|
197
|
-
"./spec/rspec/core/formatters/base_text_formatter_spec.rb:#{line}"
|
198
|
-
)
|
199
|
-
end
|
200
|
-
end
|
201
|
-
end
|
202
148
|
end
|
203
149
|
|
204
150
|
describe "#dump_pending" do
|
@@ -212,7 +158,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
212
158
|
end
|
213
159
|
|
214
160
|
context "with show_failures_in_pending_blocks setting enabled" do
|
215
|
-
before { RSpec.configuration.
|
161
|
+
before { RSpec.configuration.stub(:show_failures_in_pending_blocks?) { true } }
|
216
162
|
|
217
163
|
it "preserves formatting" do
|
218
164
|
group.example("example name") { pending { expect("this").to eq("that") } }
|
@@ -294,50 +240,6 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
294
240
|
end
|
295
241
|
end
|
296
242
|
end
|
297
|
-
|
298
|
-
context 'for #share_as' do
|
299
|
-
before { allow(RSpec).to receive(:deprecate) }
|
300
|
-
|
301
|
-
it 'outputs the name and location' do
|
302
|
-
|
303
|
-
group.share_as :FooBar2 do
|
304
|
-
it("example name") { pending { expect("this").to eq("that") } }
|
305
|
-
end
|
306
|
-
|
307
|
-
line = __LINE__.next
|
308
|
-
group.send(:include, FooBar2)
|
309
|
-
|
310
|
-
run_all_and_dump_pending
|
311
|
-
|
312
|
-
expect(output.string).to include(
|
313
|
-
'Shared Example Group: "FooBar2" called from ' +
|
314
|
-
"./spec/rspec/core/formatters/base_text_formatter_spec.rb:#{line}"
|
315
|
-
)
|
316
|
-
end
|
317
|
-
|
318
|
-
context 'that contains nested example groups' do
|
319
|
-
it 'outputs the name and location' do
|
320
|
-
|
321
|
-
group.share_as :NestedFoo2 do
|
322
|
-
describe 'nested group' do
|
323
|
-
describe 'hell' do
|
324
|
-
it("example name") { pending { expect("this").to eq("that") } }
|
325
|
-
end
|
326
|
-
end
|
327
|
-
end
|
328
|
-
|
329
|
-
line = __LINE__.next
|
330
|
-
group.send(:include, NestedFoo2)
|
331
|
-
|
332
|
-
run_all_and_dump_pending
|
333
|
-
|
334
|
-
expect(output.string).to include(
|
335
|
-
'Shared Example Group: "NestedFoo2" called from ' +
|
336
|
-
"./spec/rspec/core/formatters/base_text_formatter_spec.rb:#{line}"
|
337
|
-
)
|
338
|
-
end
|
339
|
-
end
|
340
|
-
end
|
341
243
|
end
|
342
244
|
|
343
245
|
context "with show_failures_in_pending_blocks setting disabled" do
|
@@ -456,7 +358,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
456
358
|
describe "custom_colors" do
|
457
359
|
it "uses the custom success color" do
|
458
360
|
RSpec.configure do |config|
|
459
|
-
config.
|
361
|
+
config.color_enabled = true
|
460
362
|
config.tty = true
|
461
363
|
config.success_color = :cyan
|
462
364
|
end
|
@@ -466,10 +368,6 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
466
368
|
end
|
467
369
|
|
468
370
|
describe "#colorize" do
|
469
|
-
before do
|
470
|
-
allow(RSpec.configuration).to receive(:color_enabled?) { true }
|
471
|
-
end
|
472
|
-
|
473
371
|
it "accepts a VT100 integer code and formats the text with it" do
|
474
372
|
expect(formatter.colorize('abc', 32)).to eq "\e[32mabc\e[0m"
|
475
373
|
end
|
@@ -483,25 +381,8 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
483
381
|
end
|
484
382
|
end
|
485
383
|
|
486
|
-
|
487
|
-
|
488
|
-
it "warns of deprecation for VT100_COLORS" do
|
489
|
-
expect_deprecation_with_call_site __FILE__, __LINE__ + 1
|
490
|
-
expect(described_class::VT100_COLORS).to eq RSpec::Core::Formatters::ConsoleCodes::VT100_CODES
|
491
|
-
end
|
492
|
-
|
493
|
-
it "warns of deprecation for VT100_COLOR_CODES" do
|
494
|
-
expect_deprecation_with_call_site __FILE__, __LINE__ + 1
|
495
|
-
expect(described_class::VT100_COLOR_CODES).to eq RSpec::Core::Formatters::ConsoleCodes::VT100_CODES.to_set
|
496
|
-
end
|
497
|
-
|
498
|
-
it "behaves normally for other constants" do
|
499
|
-
expect { described_class::NoSuchConst }.to raise_error(NameError)
|
500
|
-
end
|
501
|
-
end
|
502
|
-
|
503
|
-
RSpec::Core::Formatters::ConsoleCodes::VT100_CODES.each do |name, number|
|
504
|
-
next if name == :black || name == :bold
|
384
|
+
described_class::VT100_COLORS.each do |name, number|
|
385
|
+
next if name == :black
|
505
386
|
|
506
387
|
describe "##{name}" do
|
507
388
|
before do
|
@@ -521,4 +402,5 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
521
402
|
end
|
522
403
|
end
|
523
404
|
end
|
405
|
+
|
524
406
|
end
|
@@ -4,28 +4,6 @@ require 'tempfile'
|
|
4
4
|
|
5
5
|
module RSpec::Core::Formatters
|
6
6
|
describe DeprecationFormatter do
|
7
|
-
let(:deprecation_stream) { StringIO.new }
|
8
|
-
let(:summary_stream) { StringIO.new }
|
9
|
-
let(:formatter) { DeprecationFormatter.new(deprecation_stream, summary_stream) }
|
10
|
-
|
11
|
-
def with_start_defined_on_kernel
|
12
|
-
return yield if ::Kernel.method_defined?(:start)
|
13
|
-
|
14
|
-
begin
|
15
|
-
::Kernel.module_eval { def start(*); raise "boom"; end }
|
16
|
-
yield
|
17
|
-
ensure
|
18
|
-
::Kernel.module_eval { undef start }
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'does not blow up when `Kernel` defines `start`' do
|
23
|
-
with_start_defined_on_kernel do
|
24
|
-
reporter = ::RSpec::Core::Reporter.new(formatter)
|
25
|
-
reporter.start(3)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
7
|
describe "#deprecation" do
|
30
8
|
let(:formatter) { DeprecationFormatter.new(deprecation_stream, summary_stream) }
|
31
9
|
let(:summary_stream) { StringIO.new }
|
@@ -39,23 +17,6 @@ module RSpec::Core::Formatters
|
|
39
17
|
expect(deprecation_stream.read).to eq "this message\n"
|
40
18
|
end
|
41
19
|
|
42
|
-
it "surrounds multiline messages in fenceposts" do
|
43
|
-
multiline_message = <<-EOS.gsub(/^\s+\|/, '')
|
44
|
-
|line one
|
45
|
-
|line two
|
46
|
-
EOS
|
47
|
-
formatter.deprecation(:message => multiline_message)
|
48
|
-
deprecation_stream.rewind
|
49
|
-
|
50
|
-
expected = <<-EOS.gsub(/^\s+\|/, '')
|
51
|
-
|--------------------------------------------------------------------------------
|
52
|
-
|line one
|
53
|
-
|line two
|
54
|
-
|--------------------------------------------------------------------------------
|
55
|
-
EOS
|
56
|
-
expect(deprecation_stream.read).to eq expected
|
57
|
-
end
|
58
|
-
|
59
20
|
it "includes the method" do
|
60
21
|
formatter.deprecation(:deprecated => "i_am_deprecated")
|
61
22
|
deprecation_stream.rewind
|
@@ -125,27 +86,6 @@ module RSpec::Core::Formatters
|
|
125
86
|
end
|
126
87
|
end
|
127
88
|
|
128
|
-
context "with an Error deprecation_stream" do
|
129
|
-
let(:deprecation_stream) { DeprecationFormatter::RaiseErrorStream.new }
|
130
|
-
|
131
|
-
it 'prints a summary of the number of deprecations found' do
|
132
|
-
expect { formatter.deprecation(:deprecated => 'foo') }.to raise_error(RSpec::Core::DeprecationError)
|
133
|
-
|
134
|
-
formatter.deprecation_summary
|
135
|
-
|
136
|
-
expect(summary_stream.string).to eq("\n1 deprecation found.\n")
|
137
|
-
end
|
138
|
-
|
139
|
-
it 'pluralizes the count when it is greater than 1' do
|
140
|
-
expect { formatter.deprecation(:deprecated => 'foo') }.to raise_error(RSpec::Core::DeprecationError)
|
141
|
-
expect { formatter.deprecation(:deprecated => 'bar') }.to raise_error(RSpec::Core::DeprecationError)
|
142
|
-
|
143
|
-
formatter.deprecation_summary
|
144
|
-
|
145
|
-
expect(summary_stream.string).to eq("\n2 deprecations found.\n")
|
146
|
-
end
|
147
|
-
end
|
148
|
-
|
149
89
|
context "with an IO deprecation_stream" do
|
150
90
|
let(:deprecation_stream) { StringIO.new }
|
151
91
|
|
@@ -179,38 +119,13 @@ module RSpec::Core::Formatters
|
|
179
119
|
|i_am_deprecated is deprecated. Called from foo.rb:1.
|
180
120
|
|i_am_deprecated is deprecated. Called from foo.rb:2.
|
181
121
|
|i_am_deprecated is deprecated. Called from foo.rb:3.
|
182
|
-
|Too many uses of deprecated 'i_am_deprecated'.
|
183
|
-
|
|
184
|
-
|#{DeprecationFormatter::RAISE_ERROR_CONFIG_NOTICE}
|
185
|
-
EOS
|
186
|
-
expect(deprecation_stream.string).to eq expected.chomp
|
187
|
-
end
|
188
|
-
|
189
|
-
it "limits deprecations warnings by optional type" do
|
190
|
-
5.times {|i|
|
191
|
-
formatter.deprecation(
|
192
|
-
:deprecated => "i_am_deprecated #{i}",
|
193
|
-
:call_site => "foo.rb:#{i + 1}",
|
194
|
-
:type => 'i_am_deprecated'
|
195
|
-
)
|
196
|
-
}
|
197
|
-
formatter.deprecation_summary
|
198
|
-
|
199
|
-
expected = <<-EOS.gsub(/^\s+\|/, '')
|
200
|
-
|
|
201
|
-
|Deprecation Warnings:
|
202
|
-
|
|
203
|
-
|i_am_deprecated 0 is deprecated. Called from foo.rb:1.
|
204
|
-
|i_am_deprecated 1 is deprecated. Called from foo.rb:2.
|
205
|
-
|i_am_deprecated 2 is deprecated. Called from foo.rb:3.
|
206
|
-
|Too many uses of deprecated 'i_am_deprecated'. #{DeprecationFormatter::DEPRECATION_STREAM_NOTICE}
|
122
|
+
|Too many uses of deprecated 'i_am_deprecated'. Set config.deprecation_stream to a File for full output.
|
207
123
|
|
|
208
124
|
|#{DeprecationFormatter::RAISE_ERROR_CONFIG_NOTICE}
|
209
125
|
EOS
|
210
126
|
expect(deprecation_stream.string).to eq expected.chomp
|
211
127
|
end
|
212
128
|
|
213
|
-
|
214
129
|
it "limits :message deprecation warnings with different callsites after 3 calls" do
|
215
130
|
5.times do |n|
|
216
131
|
message = "This is a long string with some callsite info: /path/#{n}/to/some/file.rb:2#{n}3. And some more stuff can come after."
|
@@ -224,7 +139,7 @@ module RSpec::Core::Formatters
|
|
224
139
|
|This is a long string with some callsite info: /path/0/to/some/file.rb:203. And some more stuff can come after.
|
225
140
|
|This is a long string with some callsite info: /path/1/to/some/file.rb:213. And some more stuff can come after.
|
226
141
|
|This is a long string with some callsite info: /path/2/to/some/file.rb:223. And some more stuff can come after.
|
227
|
-
|Too many similar deprecation messages reported, disregarding further reports.
|
142
|
+
|Too many similar deprecation messages reported, disregarding further reports. Set config.deprecation_stream to a File for full output.
|
228
143
|
|
|
229
144
|
|#{DeprecationFormatter::RAISE_ERROR_CONFIG_NOTICE}
|
230
145
|
EOS
|