rspec-core 2.0.0.beta.12 → 2.0.0.beta.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. data/.gitignore +1 -0
  2. data/Gemfile +14 -0
  3. data/Rakefile +15 -12
  4. data/VERSION +1 -1
  5. data/features/command_line/example_name_option.feature +17 -3
  6. data/features/command_line/exit_status.feature +49 -0
  7. data/features/hooks/before_and_after_hooks.feature +51 -19
  8. data/features/hooks/halt.feature +1 -1
  9. data/features/support/env.rb +5 -3
  10. data/lib/rspec/core/command_line.rb +14 -5
  11. data/lib/rspec/core/configuration.rb +14 -24
  12. data/lib/rspec/core/configuration_options.rb +13 -8
  13. data/lib/rspec/core/drb_command_line.rb +2 -3
  14. data/lib/rspec/core/example.rb +5 -5
  15. data/lib/rspec/core/example_group.rb +23 -25
  16. data/lib/rspec/core/formatters/base_text_formatter.rb +13 -4
  17. data/lib/rspec/core/hooks.rb +57 -24
  18. data/lib/rspec/core/metadata.rb +1 -1
  19. data/lib/rspec/core/pending.rb +3 -3
  20. data/lib/rspec/core/rake_task.rb +48 -11
  21. data/lib/rspec/core/runner.rb +19 -8
  22. data/lib/rspec/core/subject.rb +3 -3
  23. data/lib/rspec/core/world.rb +3 -7
  24. data/rspec-core.gemspec +16 -12
  25. data/spec/rspec/core/command_line_spec.rb +72 -0
  26. data/spec/rspec/core/configuration_options_spec.rb +12 -3
  27. data/spec/rspec/core/configuration_spec.rb +6 -1
  28. data/spec/rspec/core/deprecations_spec.rb +19 -0
  29. data/spec/rspec/core/drb_command_line_spec.rb +1 -1
  30. data/spec/rspec/core/example_group_spec.rb +120 -12
  31. data/spec/rspec/core/example_spec.rb +27 -17
  32. data/spec/rspec/core/formatters/base_text_formatter_spec.rb +23 -0
  33. data/spec/rspec/core/metadata_spec.rb +32 -0
  34. data/spec/rspec/core/runner_spec.rb +2 -1
  35. data/spec/rspec/core/shared_example_group_spec.rb +1 -1
  36. data/spec/spec_helper.rb +49 -51
  37. data/specs.watchr +1 -1
  38. metadata +31 -27
@@ -3,6 +3,29 @@ require "spec_helper"
3
3
  module RSpec::Core::Formatters
4
4
 
5
5
  describe BaseTextFormatter do
6
+ describe "#summary_line" do
7
+ let(:output) { StringIO.new }
8
+ let(:formatter) { RSpec::Core::Formatters::BaseTextFormatter.new(output) }
9
+
10
+ context "with 0s" do
11
+ it "outputs pluralized (excluding pending)" do
12
+ formatter.summary_line(0,0,0).should eq("0 examples, 0 failures")
13
+ end
14
+ end
15
+
16
+ context "with 1s" do
17
+ it "outputs singular (including pending)" do
18
+ formatter.summary_line(1,1,1).should eq("1 example, 1 failure, 1 pending")
19
+ end
20
+ end
21
+
22
+ context "with 2s" do
23
+ it "outputs pluralized (including pending)" do
24
+ formatter.summary_line(2,2,2).should eq("2 examples, 2 failures, 2 pending")
25
+ end
26
+ end
27
+ end
28
+
6
29
  describe "#dump_failures" do
7
30
  it "preserves formatting" do
8
31
  output = StringIO.new
@@ -25,6 +25,38 @@ module RSpec
25
25
  end
26
26
  end
27
27
 
28
+ describe "describes" do
29
+ context "with a String" do
30
+ it "returns nil" do
31
+ m = Metadata.new
32
+ m.process('group')
33
+
34
+ m = m.for_example("example", {})
35
+ m[:example_group][:describes].should be_nil
36
+ end
37
+ end
38
+
39
+ context "with a Symbol" do
40
+ it "returns nil" do
41
+ m = Metadata.new
42
+ m.process(:group)
43
+
44
+ m = m.for_example("example", {})
45
+ m[:example_group][:describes].should be_nil
46
+ end
47
+ end
48
+
49
+ context "with a class" do
50
+ it "returns the class" do
51
+ m = Metadata.new
52
+ m.process(String)
53
+
54
+ m = m.for_example("example", {})
55
+ m[:example_group][:describes].should be(String)
56
+ end
57
+ end
58
+ end
59
+
28
60
  describe "full description" do
29
61
  it "concats the example group name and description" do
30
62
  m = Metadata.new
@@ -6,6 +6,7 @@ module RSpec::Core
6
6
  it 'sets an at_exit hook if none is already set' do
7
7
  RSpec::Core::Runner.stub(:installed_at_exit?).and_return(false)
8
8
  RSpec::Core::Runner.stub(:running_in_drb?).and_return(false)
9
+ RSpec::Core::Runner.stub(:at_exit_hook_disabled?).and_return(false)
9
10
  RSpec::Core::Runner.should_receive(:at_exit)
10
11
  RSpec::Core::Runner.autorun
11
12
  end
@@ -13,6 +14,7 @@ module RSpec::Core
13
14
  it 'does not set the at_exit hook if it is already set' do
14
15
  RSpec::Core::Runner.stub(:installed_at_exit?).and_return(true)
15
16
  RSpec::Core::Runner.stub(:running_in_drb?).and_return(false)
17
+ RSpec::Core::Runner.stub(:at_exit_hook_disabled?).and_return(false)
16
18
  RSpec::Core::Runner.should_receive(:at_exit).never
17
19
  RSpec::Core::Runner.autorun
18
20
  end
@@ -24,7 +26,6 @@ module RSpec::Core
24
26
  @err = @out = StringIO.new
25
27
 
26
28
  @options = RSpec::Core::ConfigurationOptions.new(%w[--drb --drb-port 8181 --color])
27
- @options.parse_options
28
29
  RSpec::Core::ConfigurationOptions.stub(:new) { @options }
29
30
 
30
31
  @drb_proxy = double(RSpec::Core::DRbCommandLine, :run => true)
@@ -172,7 +172,7 @@ module RSpec::Core
172
172
  it "has one example" do; end
173
173
  it "has another example" do; end
174
174
  it "includes modules, included into shared example_group, into current example_group", :compat => 'rspec-1.2' do
175
- raise "FAIL" unless running_example.example_group.included_modules.include?(RunningSharedExamplesJustForTesting)
175
+ raise "FAIL" unless example.example_group.included_modules.include?(RunningSharedExamplesJustForTesting)
176
176
  end
177
177
  end
178
178
  end
@@ -1,72 +1,70 @@
1
1
  require 'rubygems'
2
- require 'spork'
3
2
 
4
- Spork.prefork do
5
- $LOAD_PATH.unshift(File.expand_path('../../lib', __FILE__))
6
- require 'rspec/core'
3
+ $LOAD_PATH.unshift(File.expand_path('../../lib', __FILE__))
4
+ require 'rspec/core'
7
5
 
8
- $LOAD_PATH << File.expand_path('../../../rspec-expectations/lib', __FILE__)
9
- $LOAD_PATH << File.expand_path('../../../rspec-mocks/lib', __FILE__)
10
- require 'rspec/expectations'
11
- require 'rspec/mocks'
6
+ $LOAD_PATH << File.expand_path('../../../rspec-expectations/lib', __FILE__)
7
+ $LOAD_PATH << File.expand_path('../../../rspec-mocks/lib', __FILE__)
8
+ require 'rspec/expectations'
9
+ require 'rspec/mocks'
12
10
 
13
- begin
14
- require 'autotest'
15
- rescue LoadError
16
- raise "Could not load autotest."
17
- end
11
+ begin
12
+ require 'autotest'
13
+ rescue LoadError
14
+ raise "Could not load autotest."
15
+ end
18
16
 
19
- require 'autotest/rspec2'
17
+ require 'autotest/rspec2'
20
18
 
21
- Dir['./spec/support/**/*.rb'].map {|f| require f}
19
+ Dir['./spec/support/**/*.rb'].map {|f| require f}
22
20
 
23
- module RSpec
24
- module Core
25
- module Matchers
26
- def fail
27
- raise_error(::RSpec::Expectations::ExpectationNotMetError)
28
- end
21
+ module RSpec
22
+ module Core
23
+ module Matchers
24
+ def fail
25
+ raise_error(::RSpec::Expectations::ExpectationNotMetError)
26
+ end
29
27
 
30
- def fail_with(message)
31
- raise_error(::RSpec::Expectations::ExpectationNotMetError, message)
32
- end
28
+ def fail_with(message)
29
+ raise_error(::RSpec::Expectations::ExpectationNotMetError, message)
33
30
  end
34
31
  end
35
32
  end
33
+ end
36
34
 
37
- class NullObject
38
- def method_missing(method, *args, &block)
39
- # ignore
40
- end
35
+ class NullObject
36
+ def method_missing(method, *args, &block)
37
+ # ignore
41
38
  end
39
+ end
42
40
 
43
- class RSpec::Core::ExampleGroup
44
- def self.run_all(reporter=nil)
45
- run(reporter || NullObject.new)
46
- end
41
+ class RSpec::Core::ExampleGroup
42
+ def self.run_all(reporter=nil)
43
+ run(reporter || NullObject.new)
47
44
  end
45
+ end
48
46
 
49
- def in_editor?
50
- ENV.has_key?('TM_MODE') || ENV.has_key?('EMACS') || ENV.has_key?('VIM')
51
- end
47
+ def in_editor?
48
+ ENV.has_key?('TM_MODE') || ENV.has_key?('EMACS') || ENV.has_key?('VIM')
49
+ end
52
50
 
53
- RSpec.configure do |c|
54
- c.color_enabled = !in_editor?
55
- c.filter_run :focus => true
56
- c.run_all_when_everything_filtered = true
57
- c.filter_run_excluding :ruby => lambda {|version|
51
+ RSpec.configure do |c|
52
+ c.color_enabled = !in_editor?
53
+ c.filter_run :focus => true
54
+ c.run_all_when_everything_filtered = true
55
+ c.filter_run_excluding :ruby => lambda {|version|
56
+ case version.to_s
57
+ when "!ruby"
58
+ RUBY_ENGINE != "jruby"
59
+ else
58
60
  !(RUBY_VERSION.to_s =~ /^#{version.to_s}/)
59
- }
60
- c.before(:each) do
61
- @real_world = RSpec.world
62
- RSpec.instance_variable_set(:@world, RSpec::Core::World.new)
63
- end
64
- c.after(:each) do
65
- RSpec.instance_variable_set(:@world, @real_world)
66
61
  end
62
+ }
63
+ c.before(:each) do
64
+ @real_world = RSpec.world
65
+ RSpec.instance_variable_set(:@world, RSpec::Core::World.new)
66
+ end
67
+ c.after(:each) do
68
+ RSpec.instance_variable_set(:@world, @real_world)
67
69
  end
68
70
  end
69
-
70
- Spork.each_run do
71
- end
72
-
@@ -20,7 +20,7 @@ end
20
20
 
21
21
  def run(files_to_run)
22
22
  puts("Running: #{files_to_run}")
23
- system("clear;ruby -Ilib bin/rspec -cfs #{files_to_run}")
23
+ system("clear;ruby -Ilib bin/rspec -c #{files_to_run}")
24
24
  no_int_for_you
25
25
  end
26
26
 
metadata CHANGED
@@ -7,8 +7,8 @@ version: !ruby/object:Gem::Version
7
7
  - 0
8
8
  - 0
9
9
  - beta
10
- - 12
11
- version: 2.0.0.beta.12
10
+ - 13
11
+ version: 2.0.0.beta.13
12
12
  platform: ruby
13
13
  authors:
14
14
  - Chad Humphries
@@ -17,13 +17,13 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2010-06-14 00:00:00 -05:00
20
+ date: 2010-06-23 00:00:00 -05:00
21
21
  default_executable:
22
22
  dependencies:
23
23
  - !ruby/object:Gem::Dependency
24
+ type: :development
24
25
  name: rspec-expectations
25
- prerelease: false
26
- requirement: &id001 !ruby/object:Gem::Requirement
26
+ version_requirements: &id001 !ruby/object:Gem::Requirement
27
27
  requirements:
28
28
  - - ">="
29
29
  - !ruby/object:Gem::Version
@@ -32,14 +32,14 @@ dependencies:
32
32
  - 0
33
33
  - 0
34
34
  - beta
35
- - 12
36
- version: 2.0.0.beta.12
37
- type: :development
38
- version_requirements: *id001
35
+ - 13
36
+ version: 2.0.0.beta.13
37
+ requirement: *id001
38
+ prerelease: false
39
39
  - !ruby/object:Gem::Dependency
40
+ type: :development
40
41
  name: rspec-mocks
41
- prerelease: false
42
- requirement: &id002 !ruby/object:Gem::Requirement
42
+ version_requirements: &id002 !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
@@ -48,14 +48,14 @@ dependencies:
48
48
  - 0
49
49
  - 0
50
50
  - beta
51
- - 12
52
- version: 2.0.0.beta.12
53
- type: :development
54
- version_requirements: *id002
51
+ - 13
52
+ version: 2.0.0.beta.13
53
+ requirement: *id002
54
+ prerelease: false
55
55
  - !ruby/object:Gem::Dependency
56
+ type: :development
56
57
  name: cucumber
57
- prerelease: false
58
- requirement: &id003 !ruby/object:Gem::Requirement
58
+ version_requirements: &id003 !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
@@ -64,12 +64,12 @@ dependencies:
64
64
  - 5
65
65
  - 3
66
66
  version: 0.5.3
67
- type: :development
68
- version_requirements: *id003
67
+ requirement: *id003
68
+ prerelease: false
69
69
  - !ruby/object:Gem::Dependency
70
+ type: :development
70
71
  name: autotest
71
- prerelease: false
72
- requirement: &id004 !ruby/object:Gem::Requirement
72
+ version_requirements: &id004 !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - ">="
75
75
  - !ruby/object:Gem::Version
@@ -78,9 +78,9 @@ dependencies:
78
78
  - 2
79
79
  - 9
80
80
  version: 4.2.9
81
- type: :development
82
- version_requirements: *id004
83
- description: RSpec runner and example group classes
81
+ requirement: *id004
82
+ prerelease: false
83
+ description: RSpec runner and example groups
84
84
  email: dchelimsky@gmail.com;chad.humphries@gmail.com
85
85
  executables:
86
86
  - rspec
@@ -94,6 +94,7 @@ files:
94
94
  - .gitignore
95
95
  - .rspec
96
96
  - .treasure_map.rb
97
+ - Gemfile
97
98
  - License.txt
98
99
  - README.markdown
99
100
  - Rakefile
@@ -104,6 +105,7 @@ files:
104
105
  - bin/spec
105
106
  - cucumber.yml
106
107
  - features/command_line/example_name_option.feature
108
+ - features/command_line/exit_status.feature
107
109
  - features/command_line/line_number_appended_to_path.feature
108
110
  - features/command_line/line_number_option.feature
109
111
  - features/configuration/custom_settings.feature
@@ -168,6 +170,7 @@ files:
168
170
  - script/console
169
171
  - spec/autotest/failed_results_re_spec.rb
170
172
  - spec/autotest/rspec_spec.rb
173
+ - spec/rspec/core/command_line_spec.rb
171
174
  - spec/rspec/core/configuration_options_spec.rb
172
175
  - spec/rspec/core/configuration_spec.rb
173
176
  - spec/rspec/core/deprecations_spec.rb
@@ -201,13 +204,13 @@ files:
201
204
  - spec/support/matchers.rb
202
205
  - specs.watchr
203
206
  has_rdoc: true
204
- homepage: http://github.com/rspec/core
207
+ homepage: http://github.com/rspec/rspec-core
205
208
  licenses: []
206
209
 
207
210
  post_install_message: |
208
211
  **************************************************
209
212
 
210
- Thank you for installing rspec-core-2.0.0.beta.12
213
+ Thank you for installing rspec-core-2.0.0.beta.13
211
214
 
212
215
  **************************************************
213
216
 
@@ -237,10 +240,11 @@ rubyforge_project: rspec
237
240
  rubygems_version: 1.3.6
238
241
  signing_key:
239
242
  specification_version: 3
240
- summary: rspec-core-2.0.0.beta.12
243
+ summary: rspec-core-2.0.0.beta.13
241
244
  test_files:
242
245
  - spec/autotest/failed_results_re_spec.rb
243
246
  - spec/autotest/rspec_spec.rb
247
+ - spec/rspec/core/command_line_spec.rb
244
248
  - spec/rspec/core/configuration_options_spec.rb
245
249
  - spec/rspec/core/configuration_spec.rb
246
250
  - spec/rspec/core/deprecations_spec.rb