rspec 1.1.8 → 1.1.9

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.
Files changed (57) hide show
  1. data/History.txt +30 -3
  2. data/License.txt +22 -0
  3. data/Manifest.txt +3 -3
  4. data/README.txt +1 -25
  5. data/Rakefile +4 -2
  6. data/TODO.txt +5 -4
  7. data/bin/autospec +1 -1
  8. data/examples/pure/shared_example_group_example.rb +2 -2
  9. data/lib/autotest/rspec.rb +1 -1
  10. data/lib/spec.rb +5 -1
  11. data/lib/spec/example.rb +1 -1
  12. data/lib/spec/example/before_and_after_hooks.rb +93 -0
  13. data/lib/spec/example/configuration.rb +10 -1
  14. data/lib/spec/example/example_group.rb +2 -1
  15. data/lib/spec/example/example_group_factory.rb +18 -1
  16. data/lib/spec/example/example_group_methods.rb +45 -123
  17. data/lib/spec/example/example_methods.rb +9 -6
  18. data/lib/spec/example/shared_example_group.rb +6 -12
  19. data/lib/spec/extensions/main.rb +1 -1
  20. data/lib/spec/interop/test/unit/testcase.rb +1 -1
  21. data/lib/spec/mocks/error_generator.rb +1 -1
  22. data/lib/spec/mocks/message_expectation.rb +19 -4
  23. data/lib/spec/mocks/methods.rb +2 -2
  24. data/lib/spec/mocks/proxy.rb +4 -5
  25. data/lib/spec/runner.rb +3 -4
  26. data/lib/spec/runner/formatter/nested_text_formatter.rb +3 -3
  27. data/lib/spec/runner/option_parser.rb +23 -22
  28. data/lib/spec/version.rb +1 -1
  29. data/rspec.gemspec +19 -8
  30. data/spec/autotest/rspec_spec.rb +5 -1
  31. data/spec/spec/example/configuration_spec.rb +229 -215
  32. data/spec/spec/example/example_group_class_definition_spec.rb +9 -9
  33. data/spec/spec/example/example_group_factory_spec.rb +48 -27
  34. data/spec/spec/example/example_group_methods_spec.rb +436 -426
  35. data/spec/spec/example/example_group_spec.rb +459 -500
  36. data/spec/spec/example/example_methods_spec.rb +92 -86
  37. data/spec/spec/example/shared_example_group_spec.rb +219 -203
  38. data/spec/spec/extensions/main_spec.rb +23 -23
  39. data/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
  40. data/spec/spec/interop/test/unit/spec_spec.rb +15 -8
  41. data/spec/spec/mocks/mock_spec.rb +12 -2
  42. data/spec/spec/mocks/nil_expectation_warning_spec.rb +0 -1
  43. data/spec/spec/mocks/partial_mock_spec.rb +10 -5
  44. data/spec/spec/package/bin_spec_spec.rb +8 -0
  45. data/spec/spec/runner/command_line_spec.rb +101 -100
  46. data/spec/spec/runner/drb_command_line_spec.rb +0 -2
  47. data/spec/spec/runner/formatter/html_formatter_spec.rb +1 -4
  48. data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +230 -245
  49. data/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +2 -3
  50. data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +110 -109
  51. data/spec/spec/runner/option_parser_spec.rb +18 -6
  52. data/spec/spec_helper.rb +26 -5
  53. data/stories/mock_framework_integration/use_flexmock.story +1 -1
  54. metadata +38 -7
  55. data/lib/spec/example/module_inclusion_warnings.rb +0 -38
  56. data/spec/spec/example/example_group/described_module_spec.rb +0 -20
  57. data/spec/spec/example/example_group/warning_messages_spec.rb +0 -76
@@ -6,7 +6,6 @@ module Spec
6
6
  module Runner
7
7
  module Formatter
8
8
  describe TextMateFormatter do
9
- include SandboxedOptions
10
9
  attr_reader :root, :suffix, :expected_file
11
10
  before do
12
11
  @root = File.expand_path(File.dirname(__FILE__) + '/../../../..')
@@ -33,9 +32,9 @@ module Spec
33
32
  ]
34
33
  err = StringIO.new
35
34
  out = StringIO.new
36
- options = ::Spec::Runner::OptionParser.parse(args, err, out)
37
- run_with(options)
38
35
 
36
+ run_with ::Spec::Runner::OptionParser.parse(args, err, out)
37
+
39
38
  yield(out.string)
40
39
  end
41
40
  end
@@ -5,150 +5,151 @@ module Spec
5
5
  module Runner
6
6
  module Formatter
7
7
  describe SpecdocFormatter do
8
- include SandboxedOptions
9
- attr_reader :io, :options, :formatter, :example_group
10
- before(:each) do
11
- @io = StringIO.new
12
- options.stub!(:dry_run).and_return(false)
13
- options.stub!(:colour).and_return(false)
14
- @formatter = SpecdocFormatter.new(options, io)
15
- @example_group = ::Spec::Example::ExampleGroup.describe("ExampleGroup") do
16
- specify "example" do
8
+ with_sandboxed_options do
9
+ attr_reader :io, :formatter, :example_group
10
+ before(:each) do
11
+ @io = StringIO.new
12
+ options.stub!(:dry_run).and_return(false)
13
+ options.stub!(:colour).and_return(false)
14
+ @formatter = SpecdocFormatter.new(options, io)
15
+ @example_group = ::Spec::Example::ExampleGroup.describe("ExampleGroup") do
16
+ specify "example" do
17
+ end
17
18
  end
18
19
  end
19
- end
20
20
 
21
- describe "where ExampleGroup has no superclasss with a description" do
22
- before do
23
- add_example_group
24
- end
25
-
26
- def add_example_group
27
- formatter.add_example_group(example_group)
28
- end
21
+ describe "where ExampleGroup has no superclasss with a description" do
22
+ before do
23
+ add_example_group
24
+ end
29
25
 
30
- describe "#dump_summary" do
31
- it "should produce standard summary without pending when pending has a 0 count" do
32
- formatter.dump_summary(3, 2, 1, 0)
33
- io.string.should have_example_group_output("\nFinished in 3 seconds\n\n2 examples, 1 failure\n")
26
+ def add_example_group
27
+ formatter.add_example_group(example_group)
34
28
  end
35
29
 
36
- it "should produce standard summary" do
37
- formatter.dump_summary(3, 2, 1, 4)
38
- io.string.should have_example_group_output("\nFinished in 3 seconds\n\n2 examples, 1 failure, 4 pending\n")
30
+ describe "#dump_summary" do
31
+ it "should produce standard summary without pending when pending has a 0 count" do
32
+ formatter.dump_summary(3, 2, 1, 0)
33
+ io.string.should have_example_group_output("\nFinished in 3 seconds\n\n2 examples, 1 failure\n")
34
+ end
35
+
36
+ it "should produce standard summary" do
37
+ formatter.dump_summary(3, 2, 1, 4)
38
+ io.string.should have_example_group_output("\nFinished in 3 seconds\n\n2 examples, 1 failure, 4 pending\n")
39
+ end
39
40
  end
40
- end
41
41
 
42
- describe "#add_example_group" do
43
- it "should push ExampleGroup name" do
44
- io.string.should eql("\nExampleGroup\n")
42
+ describe "#add_example_group" do
43
+ it "should push ExampleGroup name" do
44
+ io.string.should eql("\nExampleGroup\n")
45
+ end
45
46
  end
46
- end
47
47
 
48
- describe "#example_failed" do
49
- describe "where ExampleGroup has no superclasss with a description" do
50
- describe "when having an error" do
51
- it "should push failing spec name and failure number" do
52
- formatter.example_failed(
53
- example_group.it("spec"),
54
- 98,
55
- Reporter::Failure.new("c s", RuntimeError.new)
56
- )
57
- io.string.should have_example_group_output("- spec (ERROR - 98)\n")
48
+ describe "#example_failed" do
49
+ describe "where ExampleGroup has no superclasss with a description" do
50
+ describe "when having an error" do
51
+ it "should push failing spec name and failure number" do
52
+ formatter.example_failed(
53
+ example_group.it("spec"),
54
+ 98,
55
+ Reporter::Failure.new("c s", RuntimeError.new)
56
+ )
57
+ io.string.should have_example_group_output("- spec (ERROR - 98)\n")
58
+ end
58
59
  end
59
- end
60
60
 
61
- describe "when having an expectation failure" do
62
- it "should push failing spec name and failure number" do
63
- formatter.example_failed(
64
- example_group.it("spec"),
65
- 98,
66
- Reporter::Failure.new("c s", Spec::Expectations::ExpectationNotMetError.new)
67
- )
68
- io.string.should have_example_group_output("- spec (FAILED - 98)\n")
61
+ describe "when having an expectation failure" do
62
+ it "should push failing spec name and failure number" do
63
+ formatter.example_failed(
64
+ example_group.it("spec"),
65
+ 98,
66
+ Reporter::Failure.new("c s", Spec::Expectations::ExpectationNotMetError.new)
67
+ )
68
+ io.string.should have_example_group_output("- spec (FAILED - 98)\n")
69
+ end
69
70
  end
70
71
  end
71
- end
72
72
 
73
- describe "where ExampleGroup has two superclasses with a description" do
74
- attr_reader :child_example_group, :grand_child_example_group
73
+ describe "where ExampleGroup has two superclasses with a description" do
74
+ attr_reader :child_example_group, :grand_child_example_group
75
75
 
76
- def add_example_group
77
- @child_example_group = Class.new(example_group).describe("Child ExampleGroup")
78
- @grand_child_example_group = Class.new(child_example_group).describe("GrandChild ExampleGroup")
79
- formatter.add_example_group(grand_child_example_group)
80
- end
81
-
82
- describe "when having an error" do
83
- it "should push failing spec name and failure number" do
84
- formatter.example_failed(
85
- example_group.it("spec"),
86
- 98,
87
- Reporter::Failure.new("c s", RuntimeError.new)
88
- )
89
- io.string.should have_nested_example_group_output("- spec (ERROR - 98)\n")
76
+ def add_example_group
77
+ @child_example_group = Class.new(example_group).describe("Child ExampleGroup")
78
+ @grand_child_example_group = Class.new(child_example_group).describe("GrandChild ExampleGroup")
79
+ formatter.add_example_group(grand_child_example_group)
90
80
  end
91
- end
92
81
 
93
- describe "when having an expectation" do
94
- it "should push failing spec name and failure number" do
95
- formatter.example_failed(
82
+ describe "when having an error" do
83
+ it "should push failing spec name and failure number" do
84
+ formatter.example_failed(
96
85
  example_group.it("spec"),
97
86
  98,
98
- Reporter::Failure.new("c s", Spec::Expectations::ExpectationNotMetError.new)
99
- )
100
- io.string.should have_nested_example_group_output("- spec (FAILED - 98)\n")
87
+ Reporter::Failure.new("c s", RuntimeError.new)
88
+ )
89
+ io.string.should have_nested_example_group_output("- spec (ERROR - 98)\n")
90
+ end
101
91
  end
102
- end
103
92
 
104
- def have_nested_example_group_output(expected_output)
105
- expected_full_output = "\nExampleGroup Child ExampleGroup GrandChild ExampleGroup\n#{expected_output}"
106
- ::Spec::Matchers::SimpleMatcher.new(expected_full_output) do |actual|
107
- actual == expected_full_output
93
+ describe "when having an expectation" do
94
+ it "should push failing spec name and failure number" do
95
+ formatter.example_failed(
96
+ example_group.it("spec"),
97
+ 98,
98
+ Reporter::Failure.new("c s", Spec::Expectations::ExpectationNotMetError.new)
99
+ )
100
+ io.string.should have_nested_example_group_output("- spec (FAILED - 98)\n")
101
+ end
102
+ end
103
+
104
+ def have_nested_example_group_output(expected_output)
105
+ expected_full_output = "\nExampleGroup Child ExampleGroup GrandChild ExampleGroup\n#{expected_output}"
106
+ ::Spec::Matchers::SimpleMatcher.new(expected_full_output) do |actual|
107
+ actual == expected_full_output
108
+ end
108
109
  end
109
110
  end
110
111
  end
111
- end
112
112
 
113
- describe "#start" do
114
- it "should push nothing on start" do
115
- formatter.start(5)
116
- io.string.should have_example_group_output("")
113
+ describe "#start" do
114
+ it "should push nothing on start" do
115
+ formatter.start(5)
116
+ io.string.should have_example_group_output("")
117
+ end
117
118
  end
118
- end
119
119
 
120
- describe "#start_dump" do
121
- it "should push nothing on start dump" do
122
- formatter.start_dump
123
- io.string.should have_example_group_output("")
120
+ describe "#start_dump" do
121
+ it "should push nothing on start dump" do
122
+ formatter.start_dump
123
+ io.string.should have_example_group_output("")
124
+ end
124
125
  end
125
- end
126
126
 
127
- describe "#example_passed" do
128
- it "should push passing spec name" do
129
- formatter.example_passed(example_group.it("spec"))
130
- io.string.should have_example_group_output("- spec\n")
127
+ describe "#example_passed" do
128
+ it "should push passing spec name" do
129
+ formatter.example_passed(example_group.it("spec"))
130
+ io.string.should have_example_group_output("- spec\n")
131
+ end
131
132
  end
132
- end
133
133
 
134
- describe "#example_pending" do
135
- it "should push pending example name and message" do
136
- formatter.example_pending(example_group.examples.first, 'reason', "#{__FILE__}:#{__LINE__}")
137
- io.string.should have_example_group_output("- example (PENDING: reason)\n")
138
- end
134
+ describe "#example_pending" do
135
+ it "should push pending example name and message" do
136
+ formatter.example_pending(example_group.examples.first, 'reason', "#{__FILE__}:#{__LINE__}")
137
+ io.string.should have_example_group_output("- example (PENDING: reason)\n")
138
+ end
139
139
 
140
- it "should dump pending" do
141
- formatter.example_pending(example_group.examples.first, 'reason', "#{__FILE__}:#{__LINE__}")
142
- io.rewind
143
- formatter.dump_pending
144
- io.string.should =~ /Pending\:\nExampleGroup example \(reason\)\n/
140
+ it "should dump pending" do
141
+ formatter.example_pending(example_group.examples.first, 'reason', "#{__FILE__}:#{__LINE__}")
142
+ io.rewind
143
+ formatter.dump_pending
144
+ io.string.should =~ /Pending\:\nExampleGroup example \(reason\)\n/
145
+ end
145
146
  end
146
- end
147
147
 
148
- def have_example_group_output(expected_output)
149
- expected = "\nExampleGroup\n#{expected_output}"
150
- ::Spec::Matchers::SimpleMatcher.new(expected) do |actual|
151
- actual == expected
148
+ def have_example_group_output(expected_output)
149
+ expected = "\nExampleGroup\n#{expected_output}"
150
+ ::Spec::Matchers::SimpleMatcher.new(expected) do |actual|
151
+ actual == expected
152
+ end
152
153
  end
153
154
  end
154
155
  end
@@ -28,6 +28,12 @@ describe "OptionParser" do
28
28
  @parser.options
29
29
  end
30
30
 
31
+ it "should leave the submitted argv alone" do
32
+ args = ["--pattern", "foo"]
33
+ @parser.order!(args)
34
+ args.should == ["--pattern", "foo"]
35
+ end
36
+
31
37
  it "should accept files to include" do
32
38
  options = parse(["--pattern", "foo"])
33
39
  options.filename_pattern.should == "foo"
@@ -66,12 +72,18 @@ describe "OptionParser" do
66
72
  options.colour.should == false
67
73
  end
68
74
 
69
- it "should print help to stdout if no args" do
70
- pending 'A regression since 1.0.8' do
71
- options = parse([])
72
- @out.rewind
73
- @out.read.should match(/Usage: spec \(FILE\|DIRECTORY\|GLOB\)\+ \[options\]/m)
74
- end
75
+ it "should print help to stdout if no args and spec_comand?" do
76
+ Spec.stub!(:spec_command?).and_return(true)
77
+ options = parse([])
78
+ @out.rewind
79
+ @out.read.should match(/Usage: spec \(FILE\|DIRECTORY\|GLOB\)\+ \[options\]/m)
80
+ end
81
+
82
+ it "should not print help to stdout if no args and NOT spec_command?" do
83
+ Spec.stub!(:spec_command?).and_return(false)
84
+ options = parse([])
85
+ @out.rewind
86
+ @out.read.should == ""
75
87
  end
76
88
 
77
89
  it "should print help to stdout" do
@@ -35,12 +35,16 @@ module Spec
35
35
  end
36
36
  exception
37
37
  end
38
+
39
+ def run_with(options)
40
+ ::Spec::Runner::CommandLine.run(options)
41
+ end
38
42
  end
39
43
  end
40
44
 
41
- share_as :SandboxedOptions do
45
+ def with_sandboxed_options
42
46
  attr_reader :options
43
-
47
+
44
48
  before(:each) do
45
49
  @original_rspec_options = ::Spec::Runner.options
46
50
  ::Spec::Runner.use(@options = ::Spec::Runner::Options.new(StringIO.new, StringIO.new))
@@ -49,8 +53,25 @@ share_as :SandboxedOptions do
49
53
  after(:each) do
50
54
  ::Spec::Runner.use(@original_rspec_options)
51
55
  end
56
+
57
+ yield
58
+ end
52
59
 
53
- def run_with(options)
54
- ::Spec::Runner::CommandLine.run(options)
60
+ def with_sandboxed_config
61
+ attr_reader :config
62
+
63
+ before(:each) do
64
+ @config = ::Spec::Example::Configuration.new
65
+ @original_configuration = ::Spec::Runner.configuration
66
+ spec_configuration = @config
67
+ ::Spec::Runner.instance_eval {@configuration = spec_configuration}
55
68
  end
56
- end unless Object.const_defined?(:SandboxedOptions)
69
+
70
+ after(:each) do
71
+ original_configuration = @original_configuration
72
+ ::Spec::Runner.instance_eval {@configuration = original_configuration}
73
+ ::Spec::Example::ExampleGroupFactory.reset
74
+ end
75
+
76
+ yield
77
+ end
@@ -1,4 +1,4 @@
1
- Story: Getting correct output
1
+ Story: Getting correct output with flexmock
2
2
 
3
3
  As an RSpec user who prefers flexmock
4
4
  I want to be able to use flexmock without rspec mocks interfering
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.8
4
+ version: 1.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - RSpec Development Team
@@ -9,9 +9,39 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-10-03 00:00:00 -05:00
12
+ date: 2008-10-20 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: diff-lcs
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: spicycode-rcov
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.8.1.3
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: syntax
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
15
45
  - !ruby/object:Gem::Dependency
16
46
  name: hoe
17
47
  type: :development
@@ -20,7 +50,7 @@ dependencies:
20
50
  requirements:
21
51
  - - ">="
22
52
  - !ruby/object:Gem::Version
23
- version: 1.7.0
53
+ version: 1.8.0
24
54
  version:
25
55
  description: Behaviour Driven Development for Ruby.
26
56
  email:
@@ -32,6 +62,7 @@ extensions: []
32
62
 
33
63
  extra_rdoc_files:
34
64
  - History.txt
65
+ - License.txt
35
66
  - Manifest.txt
36
67
  - README.txt
37
68
  - TODO.txt
@@ -44,6 +75,7 @@ extra_rdoc_files:
44
75
  - spec/spec/runner/failed.txt
45
76
  files:
46
77
  - History.txt
78
+ - License.txt
47
79
  - Manifest.txt
48
80
  - README.txt
49
81
  - Rakefile
@@ -130,6 +162,7 @@ files:
130
162
  - lib/spec/adapters/ruby_engine/mri.rb
131
163
  - lib/spec/adapters/ruby_engine/rubinius.rb
132
164
  - lib/spec/example.rb
165
+ - lib/spec/example/before_and_after_hooks.rb
133
166
  - lib/spec/example/configuration.rb
134
167
  - lib/spec/example/errors.rb
135
168
  - lib/spec/example/example_group.rb
@@ -137,7 +170,6 @@ files:
137
170
  - lib/spec/example/example_group_methods.rb
138
171
  - lib/spec/example/example_matcher.rb
139
172
  - lib/spec/example/example_methods.rb
140
- - lib/spec/example/module_inclusion_warnings.rb
141
173
  - lib/spec/example/module_reopening_fix.rb
142
174
  - lib/spec/example/pending.rb
143
175
  - lib/spec/example/shared_example_group.rb
@@ -258,8 +290,6 @@ files:
258
290
  - spec/spec.opts
259
291
  - spec/spec/adapters/ruby_engine_spec.rb
260
292
  - spec/spec/example/configuration_spec.rb
261
- - spec/spec/example/example_group/described_module_spec.rb
262
- - spec/spec/example/example_group/warning_messages_spec.rb
263
293
  - spec/spec/example/example_group_class_definition_spec.rb
264
294
  - spec/spec/example/example_group_factory_spec.rb
265
295
  - spec/spec/example/example_group_methods_spec.rb
@@ -279,6 +309,7 @@ files:
279
309
  - spec/spec/interop/test/unit/resources/spec_that_fails.rb
280
310
  - spec/spec/interop/test/unit/resources/spec_that_passes.rb
281
311
  - spec/spec/interop/test/unit/resources/spec_with_errors.rb
312
+ - spec/spec/interop/test/unit/resources/spec_with_options_hash.rb
282
313
  - spec/spec/interop/test/unit/resources/test_case_that_fails.rb
283
314
  - spec/spec/interop/test/unit/resources/test_case_that_passes.rb
284
315
  - spec/spec/interop/test/unit/resources/test_case_with_errors.rb
@@ -472,6 +503,6 @@ rubyforge_project: rspec
472
503
  rubygems_version: 1.3.0
473
504
  signing_key:
474
505
  specification_version: 2
475
- summary: rspec 1.1.8
506
+ summary: rspec 1.1.9
476
507
  test_files: []
477
508