Changeset 804
- Timestamp:
- 04/18/08 15:46:48 (4 months ago)
- Files:
-
- trunk/radiant/vendor/plugins/rspec/CHANGES (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/README (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/examples/stories/calculator.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/lib/autotest/rspec.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/lib/spec/example/example_group_factory.rb (modified) (2 diffs)
- trunk/radiant/vendor/plugins/rspec/lib/spec/example/example_group_methods.rb (modified) (3 diffs)
- trunk/radiant/vendor/plugins/rspec/lib/spec/example/example_methods.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/lib/spec/expectations/differs/default.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/lib/spec/extensions.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/lib/spec/extensions/metaclass.rb (added)
- trunk/radiant/vendor/plugins/rspec/lib/spec/extensions/object.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/lib/spec/matchers/has.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/lib/spec/matchers/raise_error.rb (modified) (7 diffs)
- trunk/radiant/vendor/plugins/rspec/lib/spec/mocks/argument_constraint_matchers.rb (modified) (2 diffs)
- trunk/radiant/vendor/plugins/rspec/lib/spec/mocks/argument_constraint_matchers.rb.orig (copied) (copied from trunk/radiant/vendor/plugins/rspec/lib/spec/mocks/argument_constraint_matchers.rb)
- trunk/radiant/vendor/plugins/rspec/lib/spec/mocks/argument_expectation.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/lib/spec/mocks/message_expectation.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/lib/spec/mocks/proxy.rb (modified) (4 diffs)
- trunk/radiant/vendor/plugins/rspec/lib/spec/runner/formatter/base_formatter.rb (modified) (2 diffs)
- trunk/radiant/vendor/plugins/rspec/lib/spec/runner/formatter/base_text_formatter.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/lib/spec/runner/formatter/failing_example_groups_formatter.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/lib/spec/runner/formatter/html_formatter.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/lib/spec/runner/formatter/progress_bar_formatter.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/lib/spec/runner/formatter/specdoc_formatter.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/lib/spec/runner/option_parser.rb (modified) (2 diffs)
- trunk/radiant/vendor/plugins/rspec/lib/spec/runner/options.rb (modified) (2 diffs)
- trunk/radiant/vendor/plugins/rspec/lib/spec/runner/reporter.rb (modified) (6 diffs)
- trunk/radiant/vendor/plugins/rspec/lib/spec/story/runner.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/lib/spec/story/runner/scenario_runner.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/lib/spec/story/runner/story_mediator.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/lib/spec/story/runner/story_runner.rb (modified) (3 diffs)
- trunk/radiant/vendor/plugins/rspec/lib/spec/story/story.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/lib/spec/story/world.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/lib/spec/version.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/pre_commit/lib/pre_commit/rspec_on_rails.rb (modified) (3 diffs)
- trunk/radiant/vendor/plugins/rspec/pre_commit/spec/pre_commit/rspec_on_rails_spec.rb (modified) (2 diffs)
- trunk/radiant/vendor/plugins/rspec/report.html (deleted)
- trunk/radiant/vendor/plugins/rspec/spec/autotest/rspec_spec.rb (modified) (3 diffs)
- trunk/radiant/vendor/plugins/rspec/spec/spec/example/example_group_factory_spec.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/spec/spec/example/example_group_methods_spec.rb (modified) (4 diffs)
- trunk/radiant/vendor/plugins/rspec/spec/spec/example/example_methods_spec.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/spec/spec/example/nested_example_group_spec.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/spec/spec/expectations/differs/default_spec.rb (modified) (4 diffs)
- trunk/radiant/vendor/plugins/rspec/spec/spec/matchers/be_spec.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/spec/spec/matchers/has_spec.rb (modified) (2 diffs)
- trunk/radiant/vendor/plugins/rspec/spec/spec/matchers/raise_error_spec.rb (modified) (2 diffs)
- trunk/radiant/vendor/plugins/rspec/spec/spec/mocks/bug_report_10263_spec.rb (moved) (moved from trunk/radiant/vendor/plugins/rspec/spec/spec/mocks/bug_report_10263.rb)
- trunk/radiant/vendor/plugins/rspec/spec/spec/mocks/bug_report_11545_spec.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/spec/spec/mocks/failing_mock_argument_constraints_spec.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/spec/spec/mocks/hash_including_matcher_spec.rb (added)
- trunk/radiant/vendor/plugins/rspec/spec/spec/mocks/mock_spec.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/spec/spec/mocks/passing_mock_argument_constraints_spec.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/spec/spec/runner/execution_context_spec.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html (modified) (6 diffs)
- trunk/radiant/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb (modified) (2 diffs)
- trunk/radiant/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb (modified) (2 diffs)
- trunk/radiant/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html (modified) (7 diffs)
- trunk/radiant/vendor/plugins/rspec/spec/spec/runner/option_parser_spec.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/spec/spec/runner/options_spec.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/spec/spec/runner/reporter_spec.rb (modified) (5 diffs)
- trunk/radiant/vendor/plugins/rspec/spec/spec/runner/spec_drb.opts (added)
- trunk/radiant/vendor/plugins/rspec/spec/spec/story/runner/scenario_runner_spec.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec/spec/spec/story/runner/story_runner_spec.rb (modified) (3 diffs)
- trunk/radiant/vendor/plugins/rspec/spec/spec/story/story_spec.rb (modified) (2 diffs)
- trunk/radiant/vendor/plugins/rspec_on_rails/generators/rspec/templates/spec.opts (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/helper_spec.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/controller_spec.rb (modified) (2 diffs)
- trunk/radiant/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/helper_spec.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec_on_rails/lib/autotest/rails_rspec.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec_on_rails/lib/spec/rails/example.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec_on_rails/lib/spec/rails/example/assigns_hash_proxy.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec_on_rails/lib/spec/rails/example/controller_example_group.rb (modified) (6 diffs)
- trunk/radiant/vendor/plugins/rspec_on_rails/lib/spec/rails/example/functional_example_group.rb (modified) (3 diffs)
- trunk/radiant/vendor/plugins/rspec_on_rails/lib/spec/rails/example/helper_example_group.rb (modified) (3 diffs)
- trunk/radiant/vendor/plugins/rspec_on_rails/lib/spec/rails/example/ivar_proxy.rb (deleted)
- trunk/radiant/vendor/plugins/rspec_on_rails/lib/spec/rails/example/rails_example_group.rb (modified) (4 diffs)
- trunk/radiant/vendor/plugins/rspec_on_rails/lib/spec/rails/example/view_example_group.rb (modified) (5 diffs)
- trunk/radiant/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/redirect_to.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec_on_rails/lib/spec/rails/version.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec_on_rails/spec/rails/example/assigns_hash_proxy_spec.rb (modified) (2 diffs)
- trunk/radiant/vendor/plugins/rspec_on_rails/spec/rails/example/controller_spec_spec.rb (modified) (3 diffs)
- trunk/radiant/vendor/plugins/rspec_on_rails/spec/rails/example/helper_spec_spec.rb (modified) (6 diffs)
- trunk/radiant/vendor/plugins/rspec_on_rails/spec/rails/example/ivar_proxy_spec.rb (deleted)
- trunk/radiant/vendor/plugins/rspec_on_rails/spec/rails/example/view_spec_spec.rb (modified) (2 diffs)
- trunk/radiant/vendor/plugins/rspec_on_rails/spec/rails/matchers/redirect_to_spec.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec_on_rails/spec/rails/mocks/ar_classes.rb (added)
- trunk/radiant/vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb (modified) (1 diff)
- trunk/radiant/vendor/plugins/rspec_on_rails/spec/rails/mocks/stub_model_spec.rb (added)
- trunk/radiant/vendor/plugins/rspec_on_rails/spec_resources/controllers/controller_spec_controller.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/radiant/vendor/plugins/rspec/CHANGES
r728 r804 1 1 == Version 1.1.4 (trunk) 2 2 3 * Applied patch from Coda Hale to get rspec calling autotest's :red hook. Closes #279. 3 Maintenance release. 4 Note: we've removed the metaclass method from Object. There were some generated specs that 5 used it, and they will now break. Just replace the metaclass call with (class << self; self; end) 6 and all will be well. 7 8 * Fixed bug in which session object in example was not the same instance used in the controller. Closes #331. 9 * Added stub_model method which creates a real model instance with :id stubbed and data access prohibited. 10 * Applied patch from Antti Tarvainen to fix bug where heckle runs rspec runs heckle runs rspec etc. Closes #280. 11 * Applied patch from Zach Dennis to merge :steps functionality to :steps_for. Closes #324. 12 * Applied patch from Pat Maddox to handle redirect_to w/ SSL. Closes #320. 13 * Applied patch from Ryan Davis to add eval of block passed to raise_error matcher. Closes #321. 14 * alias :context :describe in example_group_methods. Closes #312. 15 * Applied patch from Ben Mabey to make the Story runner exit with a non-0 exit code on failing stories. Closes #228. 16 * Added #helper and #assigns to helper specs. 17 * Applied patch from Bryan Helmkamp to tweak format of generated spec.opts to be more obvious. Closes #162. 18 * Tweaked list of exceptions (ignores) for autotest with rspec_on_rails. 19 * Applied patch from Coda Hale to get the :red hook called in autotest. Closes #279. 20 * Applied patch from Patrick Ritchie to support --drb in spec.opts. Closes #274, #293. 21 * Applied patch from Rick Olson to get rspec_on_rails working with rails edge (>= 8862) 22 * Moved metaclass method from Object to an internal module which gets included where it is needed. 23 * Applied patch from Dayo Esho: and_yield clobbers return value from block. Closes #217. 24 * Applied patch from Bob Cotton: ExampleGroupFactory.default resets previously registered types. Closes #222. 25 * Applied patch from Mike Williams to support the lib directory in rails apps with the Textmate Alternate File command. Closes #276. 26 * ExampleGroupMethods#xspecify aliases #xit 27 * A SharedExampleGroup can be created within another ExampleGroup. 28 * Applied patch from Bob Cotton: Nested ExampleGroups do not have a spec_path. Closes #224. 29 * Applied patch from Wincent Colaiuta to invert sense of "spec --diff". Closes #281. 30 * Allow any type of render in view specs. Closes #57. 4 31 * Applied patch from Ian White to get rspec working with edge rails (8804). Closes #271. 5 32 trunk/radiant/vendor/plugins/rspec/README
r717 r804 66 66 * The Spec::Rake::SpecTask needs RCov if RCov is enabled in the task. 67 67 68 See http://rspec. rubyforge.orgfor further documentation.68 See http://rspec.info for further documentation. 69 69 70 70 == Contributing trunk/radiant/vendor/plugins/rspec/examples/stories/calculator.rb
r606 r804 28 28 I want to add numbers 29 29 So that I can count some beans 30 }, :steps => steps do30 }, :steps_for => steps do 31 31 Scenario "2 + 3" do 32 32 Given "an addend of 2" trunk/radiant/vendor/plugins/rspec/lib/autotest/rspec.rb
r728 r804 23 23 super 24 24 self.failed_results_re = /^\d+\)\n(?:\e\[\d*m)?(?:.*?Error in )?'([^\n]*)'(?: FAILED)?(?:\e\[\d*m)?\n(.*?)\n\n/m 25 self.completed_re = /\ Z/ # FIX: some sort of summary line at the end?25 self.completed_re = /\n(?:\e\[\d*m)?\d* examples?/m 26 26 end 27 27 28 28 def consolidate_failures(failed) 29 filters = Hash.new { |h,k| h[k] = [] }29 filters = new_hash_of_arrays 30 30 failed.each do |spec, trace| 31 if trace =~ /\n( .*):[\d]+:\Z/32 filters[$ 1] << spec31 if trace =~ /\n(\.\/)?(.*\.rb):[\d]+:\Z?/ 32 filters[$2] << spec 33 33 end 34 34 end trunk/radiant/vendor/plugins/rspec/lib/spec/example/example_group_factory.rb
r717 r804 24 24 old = @example_group_types 25 25 @example_group_types = Hash.new(example_group_class) 26 @example_group_types.merge (old) if old26 @example_group_types.merge!(old) if old 27 27 end 28 28 … … 37 37 def create_example_group(*args, &block) 38 38 opts = Hash === args.last ? args.last : {} 39 if opts[:shared] 40 SharedExampleGroup.new(*args, &block) 41 else 42 superclass = determine_superclass(opts) 43 superclass.describe(*args, &block) 44 end 39 superclass = determine_superclass(opts) 40 superclass.describe(*args, &block) 45 41 end 46 42 trunk/radiant/vendor/plugins/rspec/lib/spec/example/example_group_methods.rb
r717 r804 35 35 # 36 36 def describe(*args, &example_group_block) 37 args << {} unless Hash === args.last 37 38 if example_group_block 38 self.subclass("Subclass") do 39 describe(*args) 40 module_eval(&example_group_block) 39 params = args.last 40 params[:spec_path] = eval("caller(0)[1]", example_group_block) unless params[:spec_path] 41 if params[:shared] 42 SharedExampleGroup.new(*args, &example_group_block) 43 else 44 self.subclass("Subclass") do 45 describe(*args) 46 module_eval(&example_group_block) 47 end 41 48 end 42 49 else … … 46 53 end 47 54 end 55 alias :context :describe 48 56 49 57 # Use this to pull in examples from shared example groups. … … 108 116 Kernel.warn("Example disabled: #{description}") 109 117 end 118 alias_method :xspecify, :xit 110 119 111 120 def run trunk/radiant/vendor/plugins/rspec/lib/spec/example/example_methods.rb
r717 r804 64 64 @_defined_description || @_matcher_description || "NO NAME" 65 65 end 66 67 def __full_description 68 "#{self.class.description} #{self.description}" 69 end 66 70 67 71 def set_instance_variables_from_hash(ivars) trunk/radiant/vendor/plugins/rspec/lib/spec/expectations/differs/default.rb
r606 r804 18 18 19 19 # This is snagged from diff/lcs/ldiff.rb (which is a commandline tool) 20 def diff_as_string(data_ old, data_new)20 def diff_as_string(data_new, data_old) 21 21 data_old = data_old.split(/\n/).map! { |e| e.chomp } 22 22 data_new = data_new.split(/\n/).map! { |e| e.chomp } trunk/radiant/vendor/plugins/rspec/lib/spec/extensions.rb
r717 r804 2 2 require 'spec/extensions/class' 3 3 require 'spec/extensions/main' 4 require 'spec/extensions/metaclass' trunk/radiant/vendor/plugins/rspec/lib/spec/extensions/object.rb
r606 r804 4 4 return args, options 5 5 end 6 7 def metaclass8 class << self; self; end9 end10 6 end trunk/radiant/vendor/plugins/rspec/lib/spec/matchers/has.rb
r606 r804 9 9 10 10 def matches?(target) 11 @target = target 12 begin 13 return target.send(predicate, *@args) 14 rescue => @error 15 # This clause should be empty, but rcov will not report it as covered 16 # unless something (anything) is executed within the clause 17 rcov_error_report = "http://eigenclass.org/hiki.rb?rcov-0.8.0" 18 end 19 return false 11 target.send(predicate, *@args) 20 12 end 21 13 22 14 def failure_message 23 raise @error if @error24 15 "expected ##{predicate}(#{@args[0].inspect}) to return true, got false" 25 16 end 26 17 27 18 def negative_failure_message 28 raise @error if @error29 19 "expected ##{predicate}(#{@args[0].inspect}) to return false, got true" 30 20 end trunk/radiant/vendor/plugins/rspec/lib/spec/matchers/raise_error.rb
r717 r804 1 1 module Spec 2 2 module Matchers 3 4 3 class RaiseError #:nodoc: 5 def initialize(error_or_message=Exception, message=nil) 6 if String === error_or_message 7 @expected_error = Exception 8 @expected_message = error_or_message 4 def initialize(error_or_message=Exception, message=nil, &block) 5 @block = block 6 case error_or_message 7 when String, Regexp 8 @expected_error, @expected_message = Exception, error_or_message 9 9 else 10 @expected_error = error_or_message 11 @expected_message = message 10 @expected_error, @expected_message = error_or_message, message 12 11 end 13 12 end 14 13 15 14 def matches?(proc) 16 15 @raised_expected_error = false 17 @raised_other = false 16 @with_expected_message = false 17 @eval_block = false 18 @eval_block_passed = false 18 19 begin 19 20 proc.call 20 21 rescue @expected_error => @actual_error 21 if @expected_message.nil? 22 @raised_expected_error = true 23 else 24 verify_message 25 end 22 @raised_expected_error = true 23 @with_expected_message = verify_message 26 24 rescue Exception => @actual_error 27 @raised_other = true 28 ensure 29 return @raised_expected_error 25 # This clause should be empty, but rcov will not report it as covered 26 # unless something (anything) is executed within the clause 27 rcov_error_report = "http://eigenclass.org/hiki.rb?rcov-0.8.0" 28 end 29 30 unless negative_expectation? 31 eval_block if @raised_expected_error && @with_expected_message && @block 32 end 33 ensure 34 return (@raised_expected_error && @with_expected_message) ? (@eval_block ? @eval_block_passed : true) : false 35 end 36 37 def eval_block 38 @eval_block = true 39 begin 40 @block[@actual_error] 41 @eval_block_passed = true 42 rescue Exception => err 43 @actual_error = err 30 44 end 31 45 end … … 33 47 def verify_message 34 48 case @expected_message 49 when nil 50 return true 35 51 when Regexp 36 if @expected_message =~ @actual_error.message 37 @raised_expected_error = true 38 else 39 @raised_other = true 40 end 52 return @expected_message =~ @actual_error.message 41 53 else 42 if @expected_message == @actual_error.message 43 @raised_expected_error = true 44 else 45 @raised_other = true 46 end 54 return @expected_message == @actual_error.message 47 55 end 48 56 end 49 57 50 58 def failure_message 51 return "expected #{expected_error}#{actual_error}" if @raised_other || !@raised_expected_error 59 if @eval_block 60 return @actual_error.message 61 else 62 return "expected #{expected_error}#{actual_error}" 63 end 52 64 end 53 65 … … 75 87 @actual_error.nil? ? " but nothing was raised" : ", got #{@actual_error.inspect}" 76 88 end 89 90 def negative_expectation? 91 # YES - I'm a bad person... help me find a better way - ryand 92 caller.first(3).find { |s| s =~ /should_not/ } 93 end 77 94 end 78 95 … … 82 99 # should raise_error(NamedError, String) 83 100 # should raise_error(NamedError, Regexp) 101 # should raise_error() { |error| ... } 102 # should raise_error(NamedError) { |error| ... } 103 # should raise_error(NamedError, String) { |error| ... } 104 # should raise_error(NamedError, Regexp) { |error| ... } 84 105 # should_not raise_error() 85 106 # should_not raise_error(NamedError) … … 91 112 # With a named error and messsage specified as a String, matches only if both match. 92 113 # With a named error and messsage specified as a Regexp, matches only if both match. 114 # Pass an optional block to perform extra verifications on the exception matched 93 115 # 94 116 # == Examples … … 96 118 # lambda { do_something_risky }.should raise_error 97 119 # lambda { do_something_risky }.should raise_error(PoorRiskDecisionError) 120 # lambda { do_something_risky }.should raise_error(PoorRiskDecisionError) { |error| error.data.should == 42 } 98 121 # lambda { do_something_risky }.should raise_error(PoorRiskDecisionError, "that was too risky") 99 122 # lambda { do_something_risky }.should raise_error(PoorRiskDecisionError, /oo ri/) … … 103 126 # lambda { do_something_risky }.should_not raise_error(PoorRiskDecisionError, "that was too risky") 104 127 # lambda { do_something_risky }.should_not raise_error(PoorRiskDecisionError, /oo ri/) 105 def raise_error(error=Exception, message=nil )106 Matchers::RaiseError.new(error, message )128 def raise_error(error=Exception, message=nil, &block) 129 Matchers::RaiseError.new(error, message, &block) 107 130 end 108 131 end trunk/radiant/vendor/plugins/rspec/lib/spec/mocks/argument_constraint_matchers.rb
r606 r804 2 2 module Mocks 3 3 module ArgumentConstraintMatchers 4 4 5 5 # Shortcut for creating an instance of Spec::Mocks::DuckTypeArgConstraint 6 6 def duck_type(*args) … … 20 20 end 21 21 22 def hash_including(expected={}) 23 HashIncludingConstraint.new(expected) 24 end 25 22 26 def no_args 23 27 NoArgsConstraint.new trunk/radiant/vendor/plugins/rspec/lib/spec/mocks/argument_expectation.rb
r606 r804 109 109 end 110 110 end 111 112 class HashIncludingConstraint 113 def initialize(expected) 114 @expected = expected 115 end 116 117 def ==(actual) 118 @expected.each do | key, value | 119 # check key for case that value evaluates to nil 120 return false unless actual.has_key?(key) && actual[key] == value 121 end 122 true 123 rescue NoMethodError => ex 124 return false 125 end 126 127 def matches?(value) 128 self == value 129 end 130 131 def description 132 "hash_including(#{@expected.inspect.sub(/^\{/,"").sub(/\}$/,"")})" 133 end 134 135 end 136 111 137 112 138 class ArgumentExpectation trunk/radiant/vendor/plugins/rspec/lib/spec/mocks/message_expectation.rb
r717 r804 113 113 @error_generator.raise_missing_block_error @args_to_yield 114 114 end 115 value = nil 115 116 @args_to_yield.each do |args_to_yield_this_time| 116 117 if block.arity > -1 && args_to_yield_this_time.length != block.arity 117 118 @error_generator.raise_wrong_arity_error args_to_yield_this_time, block.arity 118 119 end 119 block.call(*args_to_yield_this_time) 120 end 120 value = block.call(*args_to_yield_this_time) 121 end 122 value 121 123 end 122 124 trunk/radiant/vendor/plugins/rspec/lib/spec/mocks/proxy.rb
r606 r804 89 89 90 90 def define_expected_method(sym) 91 if target_responds_to?(sym) && ! metaclass.method_defined?(munge(sym))91 if target_responds_to?(sym) && !target_metaclass.method_defined?(munge(sym)) 92 92 munged_sym = munge(sym) 93 metaclass.instance_eval do93 target_metaclass.instance_eval do 94 94 alias_method munged_sym, sym if method_defined?(sym.to_s) 95 95 end … … 97 97 end 98 98 99 metaclass_eval(<<-EOF, __FILE__, __LINE__)99 target_metaclass.class_eval(<<-EOF, __FILE__, __LINE__) 100 100 def #{sym}(*args, &block) 101 101 __mock_proxy.message_received :#{sym}, *args, &block … … 126 126 end 127 127 128 def metaclass_eval(str, filename, lineno) 129 metaclass.class_eval(str, filename, lineno) 130 end 131 132 def metaclass 133 (class << @target; self; end) 128 def target_metaclass 129 class << @target; self; end 134 130 end 135 131 … … 143 139 @proxied_methods.each do |sym| 144 140 munged_sym = munge(sym) 145 metaclass.instance_eval do141 target_metaclass.instance_eval do 146 142 if method_defined?(munged_sym.to_s) 147 143 alias_method sym, munged_sym trunk/radiant/vendor/plugins/rspec/lib/spec/runner/formatter/base_formatter.rb
r717 r804 20 20 21 21 # This method is invoked at the beginning of the execution of each example_group. 22 # +name+ is the name of the example_group and +first+ is true if it is the 23 # first example_group - otherwise it's false. 22 # +example_group+ is the example_group. 24 23 # 25 24 # The next method to be invoked after this is #example_failed or #example_finished … … 47 46 # +message+ is the message from the ExamplePendingError, if it exists, or the 48 47 # default value of "Not Yet Implemented" 49 def example_pending(example _group_description, example, message)48 def example_pending(example, message) 50 49 end 51 50 trunk/radiant/vendor/plugins/rspec/lib/spec/runner/formatter/base_text_formatter.rb
r717 r804 27 27 end 28 28 29 def example_pending(example _group_description, example, message)30 @pending_examples << [ "#{example_group_description} #{example.description}", message]29 def example_pending(example, message) 30 @pending_examples << [example.__full_description, message] 31 31 end 32 32 trunk/radiant/vendor/plugins/rspec/lib/spec/runner/formatter/failing_example_groups_formatter.rb
r717 r804 5 5 module Formatter 6 6 class FailingExampleGroupsFormatter < BaseTextFormatter 7 attr_reader :example_group 7 8 def add_example_group(example_group) 8 9 super 9 @example_group _description_parts = example_group.description_parts10 @example_group = example_group 10 11 end 11 12 12 13 def example_failed(example, counter, failure) 13 if @example_group _description_parts14 description_parts = @example_group _description_parts.collect do |description|14 if @example_group 15 description_parts = @example_group.description_parts.collect do |description| 15 16 description =~ /(.*) \(druby.*\)$/ ? $1 : description 16 17 end 17 18 @output.puts ::Spec::Example::ExampleGroupMethods.description_text(*description_parts) 19 18 20 @output.flush 19 @example_group _description_parts= nil21 @example_group = nil 20 22 end 21 23 end trunk/radiant/vendor/plugins/rspec/lib/spec/runner/formatter/html_formatter.rb
r717 r804 82 82 end 83 83 84 def example_pending(example _group_description, example, message)84 def example_pending(example, message) 85 85 @output.puts " <script type=\"text/javascript\">makeYellow('rspec-header');</script>" unless @header_red 86 86 @output.puts " <script type=\"text/javascript\">makeYellow('example_group_#{current_example_group_number}');</script>" unless @example_group_red trunk/radiant/vendor/plugins/rspec/lib/spec/runner/formatter/progress_bar_formatter.rb
r717 r804 15 15 end 16 16 17 def example_pending(example _group_description, example, message)17 def example_pending(example, message) 18 18 super 19 19 @output.print yellow('P') trunk/radiant/vendor/plugins/rspec/lib/spec/runner/formatter/specdoc_formatter.rb
r717 r804 29 29 end 30 30 31 def example_pending(example _group_description, example, message)31 def example_pending(example, message) 32 32 super 33 33 output.puts yellow("- #{example.description} (PENDING: #{message})") trunk/radiant/vendor/plugins/rspec/lib/spec/runner/option_parser.rb
r717 r804 142 142 option_file_args = IO.readlines(options_file).map {|l| l.chomp.split " "}.flatten 143 143 @argv.push(*option_file_args) 144 # TODO - this is a brute force solution to http://rspec.lighthouseapp.com/projects/5645/tickets/293. 145 # Let's look for a cleaner way. Might not be one. But let's look. If not, perhaps 146 # this can be moved to a different method to indicate the special handling for drb? 147 parse_drb(@argv) 144 148 end 145 149 … … 171 175 end 172 176 173 def parse_drb 177 def parse_drb(argv = nil) 178 argv ||= @options.argv # TODO - see note about about http://rspec.lighthouseapp.com/projects/5645/tickets/293 174 179 is_drb = false 175 argv = @options.argv176 180 is_drb ||= argv.delete(OPTIONS[:drb][0]) 177 181 is_drb ||= argv.delete(OPTIONS[:drb][1]) trunk/radiant/vendor/plugins/rspec/lib/spec/runner/options.rb
r717 r804 178 178 179 179 def number_of_examples 180 @example_groups.inject(0) do |sum, example_group| 181 sum + example_group.number_of_examples 182 end 180 total = 0 181 @example_groups.each do |example_group| 182 total += example_group.number_of_examples 183 end 184 total 183 185 end 184 186
