rspec-core 2.0.0.beta.15 → 2.0.0.beta.16

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 (52) hide show
  1. data/Gemfile +2 -0
  2. data/VERSION +1 -1
  3. data/features/README.markdown +12 -0
  4. data/features/command_line/example_name_option.feature +9 -9
  5. data/features/command_line/line_number_appended_to_path.feature +44 -44
  6. data/features/command_line/line_number_option.feature +4 -4
  7. data/features/configuration/custom_settings.feature +3 -3
  8. data/features/configuration/options_file.feature +3 -3
  9. data/features/example_groups/describe_aliases.feature +1 -1
  10. data/features/example_groups/nested_groups.feature +7 -7
  11. data/features/filtering/inclusion_filters.feature +10 -10
  12. data/features/formatters/custom_formatter.feature +1 -1
  13. data/features/hooks/around_hooks.feature +13 -13
  14. data/features/hooks/before_and_after_hooks.feature +38 -16
  15. data/features/hooks/described_class.feature +1 -1
  16. data/features/hooks/halt.feature +1 -1
  17. data/features/mock_framework_integration/use_flexmock.feature +1 -1
  18. data/features/mock_framework_integration/use_mocha.feature +1 -1
  19. data/features/mock_framework_integration/use_rr.feature +1 -1
  20. data/features/mock_framework_integration/use_rspec.feature +1 -1
  21. data/features/pending/pending_examples.feature +13 -13
  22. data/features/subject/explicit_subject.feature +4 -4
  23. data/features/subject/implicit_subject.feature +2 -2
  24. data/lib/rspec/core/backward_compatibility.rb +0 -6
  25. data/lib/rspec/core/command_line.rb +16 -27
  26. data/lib/rspec/core/configuration.rb +13 -4
  27. data/lib/rspec/core/example.rb +3 -2
  28. data/lib/rspec/core/formatters.rb +2 -11
  29. data/lib/rspec/core/formatters/base_formatter.rb +7 -3
  30. data/lib/rspec/core/formatters/base_text_formatter.rb +4 -0
  31. data/lib/rspec/core/formatters/html_formatter.rb +350 -0
  32. data/lib/rspec/core/formatters/snippet_extractor.rb +52 -0
  33. data/lib/rspec/core/formatters/text_mate_formatter.rb +18 -0
  34. data/lib/rspec/core/mocking/with_rspec.rb +6 -6
  35. data/lib/rspec/core/option_parser.rb +2 -0
  36. data/lib/rspec/core/runner.rb +11 -11
  37. data/lib/rspec/core/world.rb +10 -13
  38. data/rspec-core.gemspec +26 -10
  39. data/spec/rspec/core/command_line_spec.rb +1 -9
  40. data/spec/rspec/core/configuration_spec.rb +31 -15
  41. data/spec/rspec/core/drb_command_line_spec.rb +42 -34
  42. data/spec/rspec/core/formatters/html_formatted-1.8.7.html +280 -0
  43. data/spec/rspec/core/formatters/html_formatted-1.9.1.html +260 -0
  44. data/spec/rspec/core/formatters/html_formatted-1.9.2.html +260 -0
  45. data/spec/rspec/core/formatters/html_formatter_spec.rb +71 -0
  46. data/spec/rspec/core/formatters/snippet_extractor_spec.rb +18 -0
  47. data/spec/rspec/core/formatters/text_mate_formatted-1.8.7.html +280 -0
  48. data/spec/rspec/core/formatters/text_mate_formatter_spec.rb +67 -0
  49. data/spec/rspec/core/resources/formatter_specs.rb +36 -0
  50. data/spec/rspec/core/shared_example_group_spec.rb +12 -12
  51. data/spec/spec_helper.rb +26 -21
  52. metadata +28 -12
@@ -0,0 +1,52 @@
1
+ module RSpec
2
+ module Core
3
+ module Formatters
4
+ # This class extracts code snippets by looking at the backtrace of the passed error
5
+ class SnippetExtractor #:nodoc:
6
+ class NullConverter; def convert(code, pre); code; end; end #:nodoc:
7
+ begin; require 'syntax/convertors/html'; @@converter = Syntax::Convertors::HTML.for_syntax "ruby"; rescue LoadError => e; @@converter = NullConverter.new; end
8
+
9
+ def snippet(error)
10
+ raw_code, line = snippet_for(error.backtrace[0])
11
+ highlighted = @@converter.convert(raw_code, false)
12
+ highlighted << "\n<span class=\"comment\"># gem install syntax to get syntax highlighting</span>" if @@converter.is_a?(NullConverter)
13
+ post_process(highlighted, line)
14
+ end
15
+
16
+ def snippet_for(error_line)
17
+ if error_line =~ /(.*):(\d+)/
18
+ file = $1
19
+ line = $2.to_i
20
+ [lines_around(file, line), line]
21
+ else
22
+ ["# Couldn't get snippet for #{error_line}", 1]
23
+ end
24
+ end
25
+
26
+ def lines_around(file, line)
27
+ if File.file?(file)
28
+ lines = File.open(file).read.split("\n")
29
+ min = [0, line-3].max
30
+ max = [line+1, lines.length-1].min
31
+ selected_lines = []
32
+ selected_lines.join("\n")
33
+ lines[min..max].join("\n")
34
+ else
35
+ "# Couldn't get snippet for #{file}"
36
+ end
37
+ end
38
+
39
+ def post_process(highlighted, offending_line)
40
+ new_lines = []
41
+ highlighted.split("\n").each_with_index do |line, i|
42
+ new_line = "<span class=\"linenum\">#{offending_line+i-2}</span>#{line}"
43
+ new_line = "<span class=\"offending\">#{new_line}</span>" if i == 2
44
+ new_lines << new_line
45
+ end
46
+ new_lines.join("\n")
47
+ end
48
+
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,18 @@
1
+ require 'rspec/core/formatters/html_formatter'
2
+
3
+ module RSpec
4
+ module Core
5
+ module Formatters
6
+ # Formats backtraces so they're clickable by TextMate
7
+ class TextMateFormatter < HtmlFormatter
8
+ def backtrace_line(line)
9
+ if line = super(line)
10
+ line.sub!(/([^:]*\.rb):(\d*)/) do
11
+ "<a href=\"txmt://open?url=file://#{File.expand_path($1)}&line=#{$2}\">#{$1}:#{$2}</a> "
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,19 +1,19 @@
1
- require 'rspec/mocks/framework'
2
- require 'rspec/mocks/extensions'
1
+ require 'rspec/mocks'
3
2
 
4
3
  module RSpec
5
4
  module Core
6
5
  module MockFrameworkAdapter
7
6
 
8
- include RSpec::Mocks::ExampleMethods
9
7
  def _setup_mocks
10
- $rspec_mocks ||= RSpec::Mocks::Space.new
8
+ RSpec::Mocks::setup(self)
11
9
  end
10
+
12
11
  def _verify_mocks
13
- $rspec_mocks.verify_all
12
+ RSpec::Mocks::verify
14
13
  end
14
+
15
15
  def _teardown_mocks
16
- $rspec_mocks.reset_all
16
+ RSpec::Mocks::teardown
17
17
  end
18
18
 
19
19
  end
@@ -44,6 +44,8 @@ module RSpec::Core
44
44
  parser.on('-f', '--format FORMATTER', 'Choose a formatter',
45
45
  ' [p]rogress (default - dots)',
46
46
  ' [d]ocumentation (group and example names)',
47
+ ' [h]tml',
48
+ ' [t]extmate',
47
49
  ' custom formatter class name') do |o|
48
50
  options[:formatter] = o
49
51
  end
@@ -4,22 +4,22 @@ module RSpec
4
4
  module Core
5
5
  class Runner
6
6
 
7
- def self.at_exit_hook_disabled?
8
- @no_at_exit_hook ||= false
7
+ def self.autorun
8
+ return if autorun_disabled? || installed_at_exit? || running_in_drb?
9
+ @installed_at_exit = true
10
+ at_exit { run(ARGV, $stderr, $stdout) ? exit(0) : exit(1) }
9
11
  end
10
12
 
11
- def self.disable_at_exit_hook!
12
- @no_at_exit_hook = true
13
+ def self.autorun_disabled?
14
+ @autorun_disabled ||= false
13
15
  end
14
16
 
15
- def self.installed_at_exit?
16
- @installed_at_exit ||= false
17
+ def self.disable_autorun!
18
+ @autorun_disabled = true
17
19
  end
18
20
 
19
- def self.autorun
20
- return if at_exit_hook_disabled? || installed_at_exit? || running_in_drb?
21
- @installed_at_exit = true
22
- at_exit { run(ARGV, $stderr, $stdout) ? exit(0) : exit(1) }
21
+ def self.installed_at_exit?
22
+ @installed_at_exit ||= false
23
23
  end
24
24
 
25
25
  def self.running_in_drb?
@@ -43,7 +43,7 @@ module RSpec
43
43
  end
44
44
 
45
45
  def self.run_in_process(options, err, out)
46
- CommandLine.new(options).run(err, out)
46
+ CommandLine.new(options, RSpec::configuration, RSpec::world).run(err, out)
47
47
  end
48
48
 
49
49
  end
@@ -4,7 +4,8 @@ module RSpec
4
4
 
5
5
  attr_reader :example_groups, :filtered_examples
6
6
 
7
- def initialize
7
+ def initialize(configuration=RSpec.configuration)
8
+ @configuration = configuration
8
9
  @example_groups = []
9
10
  @filtered_examples = Hash.new { |hash,group|
10
11
  hash[group] = begin
@@ -16,20 +17,16 @@ module RSpec
16
17
  }
17
18
  end
18
19
 
19
- def configuration
20
- RSpec.configuration
21
- end
22
-
23
20
  def inclusion_filter
24
- configuration.filter
21
+ @configuration.filter
25
22
  end
26
23
 
27
24
  def exclusion_filter
28
- configuration.exclusion_filter
25
+ @configuration.exclusion_filter
29
26
  end
30
27
 
31
28
  def find_modules(group)
32
- configuration.find_modules(group)
29
+ @configuration.find_modules(group)
33
30
  end
34
31
 
35
32
  def shared_example_groups
@@ -58,12 +55,12 @@ module RSpec
58
55
 
59
56
  def announce_inclusion_filter
60
57
  if inclusion_filter
61
- if RSpec.configuration.run_all_when_everything_filtered? && RSpec.world.example_count == 0
62
- RSpec.configuration.output_stream.puts "No examples were matched by #{inclusion_filter.inspect}, running all"
63
- RSpec.configuration.clear_inclusion_filter
58
+ if @configuration.run_all_when_everything_filtered? && RSpec.world.example_count == 0
59
+ @configuration.reporter.message "No examples were matched by #{inclusion_filter.inspect}, running all"
60
+ @configuration.clear_inclusion_filter
64
61
  filtered_examples.clear
65
62
  else
66
- RSpec.configuration.output_stream.puts "Run filtered using #{inclusion_filter.inspect}"
63
+ @configuration.reporter.message "Run filtered using #{inclusion_filter.inspect}"
67
64
  end
68
65
  end
69
66
  end
@@ -71,7 +68,7 @@ module RSpec
71
68
  include RSpec::Core::Hooks
72
69
 
73
70
  def find_hook(hook, scope, group)
74
- RSpec.configuration.find_hook(hook, scope, group)
71
+ @configuration.find_hook(hook, scope, group)
75
72
  end
76
73
 
77
74
  private
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rspec-core}
8
- s.version = "2.0.0.beta.15"
8
+ s.version = "2.0.0.beta.16"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Chad Humphries", "David Chelimsky"]
12
- s.date = %q{2010-06-30}
12
+ s.date = %q{2010-07-06}
13
13
  s.default_executable = %q{rspec}
14
14
  s.description = %q{RSpec runner and example groups}
15
15
  s.email = %q{dchelimsky@gmail.com;chad.humphries@gmail.com}
@@ -31,6 +31,7 @@ Gem::Specification.new do |s|
31
31
  "autotest/discover.rb",
32
32
  "bin/rspec",
33
33
  "cucumber.yml",
34
+ "features/README.markdown",
34
35
  "features/command_line/example_name_option.feature",
35
36
  "features/command_line/exit_status.feature",
36
37
  "features/command_line/line_number_appended_to_path.feature",
@@ -71,7 +72,10 @@ Gem::Specification.new do |s|
71
72
  "lib/rspec/core/formatters/base_text_formatter.rb",
72
73
  "lib/rspec/core/formatters/documentation_formatter.rb",
73
74
  "lib/rspec/core/formatters/helpers.rb",
75
+ "lib/rspec/core/formatters/html_formatter.rb",
74
76
  "lib/rspec/core/formatters/progress_formatter.rb",
77
+ "lib/rspec/core/formatters/snippet_extractor.rb",
78
+ "lib/rspec/core/formatters/text_mate_formatter.rb",
75
79
  "lib/rspec/core/hooks.rb",
76
80
  "lib/rspec/core/kernel_extensions.rb",
77
81
  "lib/rspec/core/let.rb",
@@ -110,7 +114,14 @@ Gem::Specification.new do |s|
110
114
  "spec/rspec/core/formatters/base_text_formatter_spec.rb",
111
115
  "spec/rspec/core/formatters/documentation_formatter_spec.rb",
112
116
  "spec/rspec/core/formatters/helpers_spec.rb",
117
+ "spec/rspec/core/formatters/html_formatted-1.8.7.html",
118
+ "spec/rspec/core/formatters/html_formatted-1.9.1.html",
119
+ "spec/rspec/core/formatters/html_formatted-1.9.2.html",
120
+ "spec/rspec/core/formatters/html_formatter_spec.rb",
113
121
  "spec/rspec/core/formatters/progress_formatter_spec.rb",
122
+ "spec/rspec/core/formatters/snippet_extractor_spec.rb",
123
+ "spec/rspec/core/formatters/text_mate_formatted-1.8.7.html",
124
+ "spec/rspec/core/formatters/text_mate_formatter_spec.rb",
114
125
  "spec/rspec/core/hooks_spec.rb",
115
126
  "spec/rspec/core/kernel_extensions_spec.rb",
116
127
  "spec/rspec/core/let_spec.rb",
@@ -121,6 +132,7 @@ Gem::Specification.new do |s|
121
132
  "spec/rspec/core/resources/a_foo.rb",
122
133
  "spec/rspec/core/resources/a_spec.rb",
123
134
  "spec/rspec/core/resources/custom_example_group_runner.rb",
135
+ "spec/rspec/core/resources/formatter_specs.rb",
124
136
  "spec/rspec/core/resources/utf8_encoded.rb",
125
137
  "spec/rspec/core/ruby_project_spec.rb",
126
138
  "spec/rspec/core/runner_spec.rb",
@@ -135,7 +147,7 @@ Gem::Specification.new do |s|
135
147
  s.homepage = %q{http://github.com/rspec/rspec-core}
136
148
  s.post_install_message = %q{**************************************************
137
149
 
138
- Thank you for installing rspec-core-2.0.0.beta.15
150
+ Thank you for installing rspec-core-2.0.0.beta.16
139
151
 
140
152
  **************************************************
141
153
  }
@@ -143,7 +155,7 @@ Gem::Specification.new do |s|
143
155
  s.require_paths = ["lib"]
144
156
  s.rubyforge_project = %q{rspec}
145
157
  s.rubygems_version = %q{1.3.7}
146
- s.summary = %q{rspec-core-2.0.0.beta.15}
158
+ s.summary = %q{rspec-core-2.0.0.beta.16}
147
159
  s.test_files = [
148
160
  "spec/autotest/failed_results_re_spec.rb",
149
161
  "spec/autotest/rspec_spec.rb",
@@ -159,7 +171,10 @@ Gem::Specification.new do |s|
159
171
  "spec/rspec/core/formatters/base_text_formatter_spec.rb",
160
172
  "spec/rspec/core/formatters/documentation_formatter_spec.rb",
161
173
  "spec/rspec/core/formatters/helpers_spec.rb",
174
+ "spec/rspec/core/formatters/html_formatter_spec.rb",
162
175
  "spec/rspec/core/formatters/progress_formatter_spec.rb",
176
+ "spec/rspec/core/formatters/snippet_extractor_spec.rb",
177
+ "spec/rspec/core/formatters/text_mate_formatter_spec.rb",
163
178
  "spec/rspec/core/hooks_spec.rb",
164
179
  "spec/rspec/core/kernel_extensions_spec.rb",
165
180
  "spec/rspec/core/let_spec.rb",
@@ -170,6 +185,7 @@ Gem::Specification.new do |s|
170
185
  "spec/rspec/core/resources/a_foo.rb",
171
186
  "spec/rspec/core/resources/a_spec.rb",
172
187
  "spec/rspec/core/resources/custom_example_group_runner.rb",
188
+ "spec/rspec/core/resources/formatter_specs.rb",
173
189
  "spec/rspec/core/resources/utf8_encoded.rb",
174
190
  "spec/rspec/core/ruby_project_spec.rb",
175
191
  "spec/rspec/core/runner_spec.rb",
@@ -186,19 +202,19 @@ Gem::Specification.new do |s|
186
202
  s.specification_version = 3
187
203
 
188
204
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
189
- s.add_development_dependency(%q<rspec-expectations>, [">= 2.0.0.beta.15"])
190
- s.add_development_dependency(%q<rspec-mocks>, [">= 2.0.0.beta.15"])
205
+ s.add_development_dependency(%q<rspec-expectations>, [">= 2.0.0.beta.16"])
206
+ s.add_development_dependency(%q<rspec-mocks>, [">= 2.0.0.beta.16"])
191
207
  s.add_development_dependency(%q<cucumber>, [">= 0.5.3"])
192
208
  s.add_development_dependency(%q<autotest>, [">= 4.2.9"])
193
209
  else
194
- s.add_dependency(%q<rspec-expectations>, [">= 2.0.0.beta.15"])
195
- s.add_dependency(%q<rspec-mocks>, [">= 2.0.0.beta.15"])
210
+ s.add_dependency(%q<rspec-expectations>, [">= 2.0.0.beta.16"])
211
+ s.add_dependency(%q<rspec-mocks>, [">= 2.0.0.beta.16"])
196
212
  s.add_dependency(%q<cucumber>, [">= 0.5.3"])
197
213
  s.add_dependency(%q<autotest>, [">= 4.2.9"])
198
214
  end
199
215
  else
200
- s.add_dependency(%q<rspec-expectations>, [">= 2.0.0.beta.15"])
201
- s.add_dependency(%q<rspec-mocks>, [">= 2.0.0.beta.15"])
216
+ s.add_dependency(%q<rspec-expectations>, [">= 2.0.0.beta.16"])
217
+ s.add_dependency(%q<rspec-mocks>, [">= 2.0.0.beta.16"])
202
218
  s.add_dependency(%q<cucumber>, [">= 0.5.3"])
203
219
  s.add_dependency(%q<autotest>, [">= 4.2.9"])
204
220
  end
@@ -3,13 +3,6 @@ require "stringio"
3
3
 
4
4
  module RSpec::Core
5
5
  describe CommandLine do
6
- context "given an array" do
7
- it "converts the contents to a ConfigurationOptions object" do
8
- command_line = CommandLine.new(%w[--color])
9
- command_line.instance_eval { @options }.should be_a(ConfigurationOptions)
10
- end
11
- end
12
-
13
6
  context "given a ConfigurationOptions object" do
14
7
  it "assigns it to @options" do
15
8
  config_options = ConfigurationOptions.new(%w[--color])
@@ -27,7 +20,7 @@ module RSpec::Core
27
20
  end
28
21
 
29
22
  let(:command_line) do
30
- CommandLine.new(config_options)
23
+ CommandLine.new(config_options, config)
31
24
  end
32
25
 
33
26
  let(:config) do
@@ -37,7 +30,6 @@ module RSpec::Core
37
30
  let(:out) { ::StringIO.new }
38
31
 
39
32
  before do
40
- command_line.stub(:configuration) { config }
41
33
  config.stub(:run_hook)
42
34
  end
43
35
 
@@ -140,19 +140,22 @@ module RSpec::Core
140
140
 
141
141
  context "with no filter" do
142
142
  it "includes the given module into each example group" do
143
- config.include(InstanceLevelMethods)
144
-
143
+ RSpec.configure do |c|
144
+ c.include(InstanceLevelMethods)
145
+ end
146
+
145
147
  group = ExampleGroup.describe('does like, stuff and junk', :magic_key => :include) { }
146
148
  group.should_not respond_to(:you_call_this_a_blt?)
147
149
  group.new.you_call_this_a_blt?.should == "egad man, where's the mayo?!?!?"
148
150
  end
149
-
150
151
  end
151
152
 
152
153
  context "with a filter" do
153
154
  it "includes the given module into each matching example group" do
154
- config.include(InstanceLevelMethods, :magic_key => :include)
155
-
155
+ RSpec.configure do |c|
156
+ c.include(InstanceLevelMethods, :magic_key => :include)
157
+ end
158
+
156
159
  group = ExampleGroup.describe('does like, stuff and junk', :magic_key => :include) { }
157
160
  group.should_not respond_to(:you_call_this_a_blt?)
158
161
  group.new.you_call_this_a_blt?.should == "egad man, where's the mayo?!?!?"
@@ -169,7 +172,10 @@ module RSpec::Core
169
172
  end
170
173
 
171
174
  it "should extend the given module into each matching example group" do
172
- config.extend(ThatThingISentYou, :magic_key => :extend)
175
+ RSpec.configure do |c|
176
+ c.extend(ThatThingISentYou, :magic_key => :extend)
177
+ end
178
+
173
179
  group = ExampleGroup.describe(ThatThingISentYou, :magic_key => :extend) { }
174
180
  group.should respond_to(:that_thing)
175
181
  end
@@ -304,18 +310,18 @@ module RSpec::Core
304
310
  end
305
311
 
306
312
  describe "full_backtrace=" do
307
- before do
308
- @backtrace_clean_patterns = config.backtrace_clean_patterns
309
- end
310
-
311
- after do
312
- config.backtrace_clean_patterns = @backtrace_clean_patterns
313
- end
314
-
315
313
  it "clears the backtrace clean patterns" do
316
314
  config.full_backtrace = true
317
315
  config.backtrace_clean_patterns.should == []
318
316
  end
317
+
318
+ it "doesn't impact other instances of config" do
319
+ config_1 = Configuration.new
320
+ config_2 = Configuration.new
321
+
322
+ config_1.full_backtrace = true
323
+ config_2.backtrace_clean_patterns.should_not be_empty
324
+ end
319
325
  end
320
326
 
321
327
  describe "debug=true" do
@@ -384,10 +390,20 @@ module RSpec::Core
384
390
  config.custom_option?.should be_true
385
391
  end
386
392
 
387
- it "can be overridden" do
393
+ it "can be overridden with a truthy value" do
388
394
  config.custom_option = "a new value"
389
395
  config.custom_option.should eq("a new value")
390
396
  end
397
+
398
+ it "can be overridden with nil" do
399
+ config.custom_option = nil
400
+ config.custom_option.should eq(nil)
401
+ end
402
+
403
+ it "can be overridden with false" do
404
+ config.custom_option = false
405
+ config.custom_option.should eq(false)
406
+ end
391
407
  end
392
408
  end
393
409
 
@@ -1,31 +1,39 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe "::DRbCommandLine", :ruby => "!jruby" do
4
- before do
5
- RSpec.stub(:configuration).and_return(RSpec::Core::Configuration.new)
4
+ let(:config) { RSpec::Core::Configuration.new }
5
+ let(:out) { StringIO.new }
6
+ let(:err) { StringIO.new }
7
+
8
+ def config_options(argv=[])
9
+ options = RSpec::Core::ConfigurationOptions.new(argv)
10
+ options.parse_options
11
+ options
12
+ end
13
+
14
+ def drb_command_line(args)
15
+ RSpec::Core::DRbCommandLine.new(config_options(args))
16
+ end
17
+
18
+ def run_with(args)
19
+ drb_command_line(args).run(err, out)
6
20
  end
7
21
 
8
22
  context "without server running" do
9
23
  it "prints error" do
10
- err = out = StringIO.new
11
- RSpec::Core::DRbCommandLine.new([]).run(err, out)
24
+ run_with []
12
25
 
13
26
  err.rewind
14
27
  err.read.should =~ /No DRb server is running/
15
28
  end
16
29
 
17
30
  it "returns false" do
18
- err = out = StringIO.new
19
- result = RSpec::Core::DRbCommandLine.new([]).run(err, out)
31
+ result = run_with []
20
32
  result.should be_false
21
33
  end
22
34
  end
23
35
 
24
36
  describe "--drb-port" do
25
- def config_options_object(*args)
26
- RSpec::Core::DRbCommandLine.new(args)
27
- end
28
-
29
37
  def with_RSPEC_DRB_set_to(val)
30
38
  original = ENV['RSPEC_DRB']
31
39
  ENV['RSPEC_DRB'] = val
@@ -39,14 +47,14 @@ describe "::DRbCommandLine", :ruby => "!jruby" do
39
47
  context "without RSPEC_DRB environment variable set" do
40
48
  it "defaults to 8989" do
41
49
  with_RSPEC_DRB_set_to(nil) do
42
- RSpec::Core::DRbCommandLine.new([]).drb_port.should == 8989
50
+ drb_command_line([]).drb_port.should == 8989
43
51
  end
44
52
  end
45
53
 
46
54
  it "sets the DRb port" do
47
55
  with_RSPEC_DRB_set_to(nil) do
48
- RSpec::Core::DRbCommandLine.new(["--drb-port", "1234"]).drb_port.should == 1234
49
- RSpec::Core::DRbCommandLine.new(["--drb-port", "5678"]).drb_port.should == 5678
56
+ drb_command_line(["--drb-port", "1234"]).drb_port.should == 1234
57
+ drb_command_line(["--drb-port", "5678"]).drb_port.should == 5678
50
58
  end
51
59
  end
52
60
  end
@@ -56,7 +64,7 @@ describe "::DRbCommandLine", :ruby => "!jruby" do
56
64
  context "without config variable set" do
57
65
  it "uses RSPEC_DRB value" do
58
66
  with_RSPEC_DRB_set_to('9000') do
59
- RSpec::Core::DRbCommandLine.new([]).drb_port.should == "9000"
67
+ drb_command_line([]).drb_port.should == "9000"
60
68
  end
61
69
  end
62
70
  end
@@ -64,7 +72,7 @@ describe "::DRbCommandLine", :ruby => "!jruby" do
64
72
  context "and config variable set" do
65
73
  it "uses configured value" do
66
74
  with_RSPEC_DRB_set_to('9000') do
67
- RSpec::Core::DRbCommandLine.new(%w[--drb-port 5678]).drb_port.should == 5678
75
+ drb_command_line(%w[--drb-port 5678]).drb_port.should == 5678
68
76
  end
69
77
  end
70
78
  end
@@ -74,7 +82,9 @@ describe "::DRbCommandLine", :ruby => "!jruby" do
74
82
  context "with server running" do
75
83
  class ::FakeDrbSpecServer
76
84
  def self.run(argv, err, out)
77
- RSpec::Core::CommandLine.new(argv).run(err, out)
85
+ options = RSpec::Core::ConfigurationOptions.new(argv)
86
+ options.parse_options
87
+ RSpec::Core::CommandLine.new(options, RSpec::Core::Configuration.new).run(err, out)
78
88
  end
79
89
  end
80
90
 
@@ -117,34 +127,32 @@ describe "::DRbCommandLine", :ruby => "!jruby" do
117
127
  end
118
128
  end
119
129
 
120
- def run_spec_via_druby(argv)
130
+ it "returns true" do
121
131
  err, out = StringIO.new, StringIO.new
122
- RSpec::Core::DRbCommandLine.new(argv.push("--drb-port", @drb_port.to_s)).run(err, out)
123
- out.rewind
124
- out.read
132
+ result = drb_command_line(["--drb-port", @drb_port.to_s]).run(err, out)
133
+ result.should be_true
125
134
  end
126
-
127
- it "returns true" do
135
+
136
+ it "integrates via Runner.new.run" do
128
137
  err, out = StringIO.new, StringIO.new
129
- result = RSpec::Core::DRbCommandLine.new(["--drb-port", @drb_port.to_s]).run(err, out)
138
+ result = RSpec::Core::Runner.run(%W[ --drb --drb-port #{@drb_port} #{dummy_spec_filename}], err, out)
130
139
  result.should be_true
131
140
  end
141
+
142
+ def run_spec_via_druby
143
+ run_with([dummy_spec_filename, "--colour", "--drb-port", @drb_port.to_s])
144
+ out.rewind
145
+ out.read
146
+ end
132
147
 
133
148
  it "should output green colorized text when running with --colour option" do
134
- out = run_spec_via_druby(["--colour", dummy_spec_filename])
135
- out.should =~ /\e\[32m/m
149
+ pending "figure out a way to properly sandbox this"
150
+ run_spec_via_druby.should =~ /\e\[32m/m
136
151
  end
137
152
 
138
153
  it "should output red colorized text when running with -c option" do
139
- pending
140
- out = run_spec_via_druby(["-c", dummy_spec_filename])
141
- out.should =~ /\e\[31m/m
142
- end
143
-
144
- it "integrates via Runner.new.run" do
145
- err, out = StringIO.new, StringIO.new
146
- result = RSpec::Core::Runner.run(%W[ --drb --drb-port #{@drb_port} #{dummy_spec_filename}], err, out)
147
- result.should be_true
154
+ pending "figure out a way to properly sandbox this"
155
+ run_spec_via_druby.should =~ /\e\[31m/m
148
156
  end
149
157
  end
150
158