diff --git a/Gemfile b/Gemfile index 3a6b685f..5c49f68a 100644 --- a/Gemfile +++ b/Gemfile @@ -11,8 +11,7 @@ group :development do end group :test do - gem 'bacon', '~> 1.2' - gem 'mocha', '~> 1.0', require: "mocha/api" + gem 'rspec', '~> 3.0' end group :development, :test do diff --git a/Rakefile b/Rakefile index 96f37f40..dc5c96d5 100644 --- a/Rakefile +++ b/Rakefile @@ -11,8 +11,8 @@ desc "Set up and run tests" task :default => [:test] def run_specs paths - quiet = ENV['VERBOSE'] ? '' : '-q' - exec "bacon -Ispec -rubygems #{quiet} #{paths.join ' '}" + format = ENV['VERBOSE'] ? '--format documentation ' : '' + sh "rspec #{format}#{paths.join ' '}" end desc "Run tests" diff --git a/spec/cli_spec.rb b/spec/cli_spec.rb index 0f6f88cf..52117189 100644 --- a/spec/cli_spec.rb +++ b/spec/cli_spec.rb @@ -7,17 +7,17 @@ describe Pry::Hooks do describe "parsing options" do it 'should raise if no options defined' do - lambda { Pry::CLI.parse_options(["--nothing"]) }.should.raise Pry::CLI::NoOptionsError + expect { Pry::CLI.parse_options(["--nothing"]) }.to raise_error Pry::CLI::NoOptionsError end it "should remove args from ARGV by default" do - ARGV << '-v' + argv = ['filename', '-v'] Pry::CLI.add_options do on :v, "Display the Pry version" do # irrelevant end - end.parse_options - ARGV.include?('-v').should == false + end.parse_options(argv) + argv.include?('-v').should == false end end @@ -48,8 +48,8 @@ describe Pry::Hooks do end end.parse_options(["--optiontest", "--optiontest2"]) - run.should.be.true - run2.should.be.true + run.should equal true + run2.should equal true end end diff --git a/spec/code_spec.rb b/spec/code_spec.rb index 9cf802ac..fc12f0b2 100644 --- a/spec/code_spec.rb +++ b/spec/code_spec.rb @@ -24,9 +24,9 @@ describe Pry::Code do end should 'raise an error if the file doesn\'t exist' do - proc do + expect do Pry::Code.from_file('/knalkjsdnalsd/alkjdlkq') - end.should.raise(MethodSource::SourceNotFoundError) + end.to raise_error MethodSource::SourceNotFoundError end should 'check for files relative to origin pwd' do @@ -194,7 +194,7 @@ describe Pry::Code do should 'disable line numbers when falsy' do @code = @code.with_line_numbers @code = @code.with_line_numbers(false) - @code.should.not =~ /1:/ + @code.should_not =~ /1:/ end end diff --git a/spec/command_integration_spec.rb b/spec/command_integration_spec.rb index d8707fa3..ccc01e89 100644 --- a/spec/command_integration_spec.rb +++ b/spec/command_integration_spec.rb @@ -221,7 +221,7 @@ describe "commands" do p.eval "def hello\npeter pan\n" p.run_command "amend-line !" p.eval_string.should =~ /def hello/ - p.eval_string.should.not =~ /peter pan/ + p.eval_string.should_not =~ /peter pan/ end it 'should run a command in the context of a session' do @@ -248,7 +248,7 @@ describe "commands" do pry end - @str_output.string.should.not =~ /SyntaxError/ + @str_output.string.should_not =~ /SyntaxError/ end it 'should NOT interpolate ruby code into commands if :interpolate => false' do @@ -264,13 +264,8 @@ describe "commands" do it 'should NOT try to interpolate pure ruby code (no commands) ' do # These should raise RuntimeError instead of NameError - proc { - pry_eval 'raise \'#{aggy}\'' - }.should.raise(RuntimeError) - - proc { - pry_eval 'raise #{aggy}' - }.should.raise(RuntimeError) + expect { pry_eval 'raise \'#{aggy}\'' }.to raise_error RuntimeError + expect { pry_eval 'raise #{aggy}' }.to raise_error RuntimeError pry_eval('format \'#{my_var}\'').should == "\#{my_var}" end @@ -488,7 +483,7 @@ describe "commands" do desc "help", "blah" end commands = klass.to_hash - commands["help"].description.should.not == orig + commands["help"].description.should_not == orig commands["help"].description.should == "blah" end diff --git a/spec/command_set_spec.rb b/spec/command_set_spec.rb index 8e7eee38..f1b24e27 100644 --- a/spec/command_set_spec.rb +++ b/spec/command_set_spec.rb @@ -15,16 +15,16 @@ describe Pry::CommandSet do describe "[]=" do it "removes a command from the command set" do - @set["help"].should.not == nil + @set["help"].should_not == nil @set["help"] = nil @set["help"].should == nil - lambda { @set.run_command(TOPLEVEL_BINDING, "help") }.should.raise Pry::NoCommandError + expect { @set.run_command(TOPLEVEL_BINDING, "help") }.to raise_error Pry::NoCommandError end it "replaces a command" do old_help = @set["help"] @set["help"] = @set["pry-version"] - @set["help"].should.not == old_help + @set["help"].should_not == old_help end it "rebinds the command with key" do @@ -33,7 +33,7 @@ describe Pry::CommandSet do end it "raises a TypeError when command is not a subclass of Pry::Command" do - lambda { @set["help"] = "hello" }.should.raise TypeError + expect { @set["help"] = "hello" }.to raise_error TypeError end end @@ -67,27 +67,21 @@ describe Pry::CommandSet do it 'should raise an error when calling an undefined command' do @set.command('foo') {} - lambda { - @set.run_command @ctx, 'bar' - }.should.raise(Pry::NoCommandError) + expect { @set.run_command @ctx, 'bar' }.to raise_error Pry::NoCommandError end it 'should be able to remove its own commands' do @set.command('foo') {} @set.delete 'foo' - lambda { - @set.run_command @ctx, 'foo' - }.should.raise(Pry::NoCommandError) + expect { @set.run_command @ctx, 'foo' }.to raise_error Pry::NoCommandError end it 'should be able to remove its own commands, by listing name' do @set.command(/^foo1/, 'desc', :listing => 'foo') {} @set.delete 'foo' - lambda { - @set.run_command @ctx, /^foo1/ - }.should.raise(Pry::NoCommandError) + expect { @set.run_command @ctx, /^foo1/ }.to raise_error Pry::NoCommandError end it 'should be able to import some commands from other sets' do @@ -103,9 +97,7 @@ describe Pry::CommandSet do @set.run_command @ctx, 'foo' run.should == true - lambda { - @set.run_command @ctx, 'bar' - }.should.raise(Pry::NoCommandError) + expect { @set.run_command @ctx, 'bar' }.to raise_error Pry::NoCommandError end it 'should return command set after import' do @@ -211,7 +203,7 @@ describe Pry::CommandSet do @set['bar'].options[:interpolate].should == @set['foo'].options[:interpolate] # however some options should not be inherited - @set['bar'].options[:listing].should.not == @set['foo'].options[:listing] + @set['bar'].options[:listing].should_not == @set['foo'].options[:listing] @set['bar'].options[:listing].should == "bar" end @@ -289,22 +281,19 @@ describe Pry::CommandSet do end it 'should be able to have its own helpers' do - @set.command('foo') do - should.respond_to :my_helper - end - - @set.helpers do - def my_helper; end - end + @set.command('foo') { my_helper } + @set.helpers { def my_helper; end } @set.run_command(@ctx, 'foo') - Pry::Command.subclass('foo', '', {}, Module.new).new({:target => binding}).should.not.respond_to :my_helper + Pry::Command.subclass('foo', '', {}, Module.new) + .new({:target => binding}) + .should_not(respond_to :my_helper) end it 'should not recreate a new helper module when helpers is called' do @set.command('foo') do - should.respond_to :my_helper - should.respond_to :my_other_helper + my_helper + my_other_helper end @set.helpers do @@ -326,7 +315,7 @@ describe Pry::CommandSet do end @set.import imported_set - @set.command('foo') { should.respond_to :imported_helper_method } + @set.command('foo') { imported_helper_method } @set.run_command(@ctx, 'foo') end @@ -340,7 +329,7 @@ describe Pry::CommandSet do end @set.import_from imported_set, 'bar' - @set.command('foo') { should.respond_to :imported_helper_method } + @set.command('foo') { imported_helper_method } @set.run_command(@ctx, 'foo') end @@ -358,9 +347,7 @@ describe Pry::CommandSet do @ctx[:command_set] = @set @ctx[:output] = StringIO.new - lambda { - @set.run_command(@ctx, 'help') - }.should.not.raise + expect { @set.run_command(@ctx, 'help') }.to_not raise_error end @@ -382,13 +369,13 @@ describe Pry::CommandSet do end it 'should raise exception trying to rename non-existent command' do - lambda { @set.rename_command('bar', 'foo') }.should.raise ArgumentError + expect { @set.rename_command('bar', 'foo') }.to raise_error ArgumentError end it 'should make old command name inaccessible' do @set.command('foo') { } @set.rename_command('bar', 'foo') - lambda { @set.run_command(@ctx, 'foo') }.should.raise Pry::NoCommandError + expect { @set.run_command(@ctx, 'foo') }.to raise_error Pry::NoCommandError end it 'should be able to pass in options when renaming command' do @@ -592,9 +579,7 @@ describe Pry::CommandSet do it 'should not cause argument interpolation' do cmd = @set.command('hello') - lambda { - @set.valid_command?('hello #{raise "futz"}') - }.should.not.raise + expect { @set.valid_command?('hello #{raise "futz"}') }.to_not raise_error end end diff --git a/spec/command_spec.rb b/spec/command_spec.rb index 56432726..d75ac91a 100644 --- a/spec/command_spec.rb +++ b/spec/command_spec.rb @@ -22,9 +22,7 @@ describe "Pry::Command" do # end - lambda { - mock_command(cmd, %w()) - }.should.raise(Pry::CommandError) + expect { mock_command(cmd, %w()) }.to raise_error Pry::CommandError end it 'should return VOID without keep_retval' do @@ -198,9 +196,7 @@ describe "Pry::Command" do end end - lambda { - mock_command(cmd) - }.should.raise(Pry::CommandError) + expect { mock_command(cmd) }.to raise_error Pry::CommandError end it 'should work if neither options, nor setup is overridden' do @@ -402,10 +398,7 @@ describe "Pry::Command" do it "should raise an error if the line doesn't match the command" do cmd = @set.command 'grunthos', 'the flatulent' - - lambda { - cmd.new.process_line %(grumpos) - }.should.raise(Pry::CommandError) + expect { cmd.new.process_line %(grumpos) }.to raise_error Pry::CommandError end end @@ -619,9 +612,7 @@ describe "Pry::Command" do end @out = StringIO.new - proc { - @t.eval 'walking-spanish | { :jesus }' - }.should.raise(NoMethodError) + expect { @t.eval 'walking-spanish | { :jesus }' }.to raise_error(NoMethodError) end it "should expose block in command_block method" do diff --git a/spec/commands/amend_line_spec.rb b/spec/commands/amend_line_spec.rb index 7e16645a..613567bd 100644 --- a/spec/commands/amend_line_spec.rb +++ b/spec/commands/amend_line_spec.rb @@ -117,7 +117,7 @@ describe "amend-line" do error = e end - error.should.not.be.nil + error.should_not equal nil error.message.should =~ /No input to amend/ end diff --git a/spec/commands/cat/file_formatter_spec.rb b/spec/commands/cat/file_formatter_spec.rb index 9d76475a..824a6e6c 100644 --- a/spec/commands/cat/file_formatter_spec.rb +++ b/spec/commands/cat/file_formatter_spec.rb @@ -3,13 +3,9 @@ require_relative '../../helper' describe Pry::Command::Cat::FileFormatter do describe "#file_and_line" do before do - @p = Pry.new + @p = Pry.new @opt = Slop.new - Pry::Code.stubs(:from_file) - end - - after do - Pry::Code.unstub(:from_file) + expect(Pry::Code).to receive(:from_file) end describe "windows filesystem" do @@ -43,7 +39,7 @@ describe Pry::Command::Cat::FileFormatter do file_name, line_num = ff.file_and_line file_name.should == "C:\\Ruby193\\pry_instance.rb" line_num.should == 2 - end + end end describe "UNIX-like filesystem" do diff --git a/spec/commands/cat_spec.rb b/spec/commands/cat_spec.rb index 26b69b75..3c8a3429 100644 --- a/spec/commands/cat_spec.rb +++ b/spec/commands/cat_spec.rb @@ -17,9 +17,7 @@ describe "cat" do describe "on receiving a file that does not exist" do it 'should display an error message' do - proc { - @t.eval 'cat supercalifragilicious66' - }.should.raise(StandardError).message.should =~ /Cannot open/ + expect { @t.eval 'cat supercalifragilicious66' }.to raise_error(StandardError, /Cannot open/) end end @@ -135,9 +133,7 @@ describe "cat" do it 'should show error when backtrace level out of bounds' do @t.last_exception = mock_exception('x', 'x', 'x') - proc { - @t.eval('cat --ex 3') - }.should.raise(Pry::CommandError).message.should =~ /out of bounds/ + expect { @t.eval('cat --ex 3') }.to raise_error(Pry::CommandError, /out of bounds/) end it 'each successive cat --ex should show the next level of backtrace, and going past the final level should return to the first' do diff --git a/spec/commands/cd_spec.rb b/spec/commands/cd_spec.rb index ddc3595b..8c419695 100644 --- a/spec/commands/cd_spec.rb +++ b/spec/commands/cd_spec.rb @@ -28,7 +28,7 @@ describe 'cd' do describe 'state' do it 'should not to be set up in fresh instance' do - @t.command_state.should.be.nil + @t.command_state.should equal nil end end @@ -44,9 +44,7 @@ describe 'cd' do describe 'when an error was raised' do it 'should not toggle and should keep correct stacks' do - proc { - @t.eval 'cd %' - }.should.raise(Pry::CommandError) + expect { @t.eval 'cd %' }.to raise_error Pry::CommandError @t.old_stack.should == [] @t.assert_binding_stack [@o] @@ -233,9 +231,7 @@ describe 'cd' do end it 'should not cd into complex input when it encounters an exception' do - proc { - @t.eval 'cd 1/2/swoop_a_doop/3' - }.should.raise(Pry::CommandError) + expect { @t.eval 'cd 1/2/swoop_a_doop/3' }.to raise_error Pry::CommandError @t.assert_binding_stack [@o] end @@ -252,8 +248,6 @@ describe 'cd' do # Regression test for ticket #516. it 'should be able to cd into the Object BasicObject' do - proc { - @t.eval 'cd BasicObject.new' - }.should.not.raise + expect { @t.eval 'cd BasicObject.new' }.to_not raise_error end end diff --git a/spec/commands/disable_pry_spec.rb b/spec/commands/disable_pry_spec.rb index 534f0634..d41d1f4d 100644 --- a/spec/commands/disable_pry_spec.rb +++ b/spec/commands/disable_pry_spec.rb @@ -10,16 +10,12 @@ describe "disable-pry" do end it 'should quit the current session' do - lambda{ - @t.process_command 'disable-pry' - }.should.throw(:breakout) + expect { @t.process_command 'disable-pry' }.to throw_symbol :breakout end it "should set DISABLE_PRY" do ENV['DISABLE_PRY'].should == nil - lambda{ - @t.process_command 'disable-pry' - }.should.throw(:breakout) + expect { @t.process_command 'disable-pry' }.to throw_symbol :breakout ENV['DISABLE_PRY'].should == 'true' end end diff --git a/spec/commands/edit_spec.rb b/spec/commands/edit_spec.rb index b3b43ae1..85edb742 100644 --- a/spec/commands/edit_spec.rb +++ b/spec/commands/edit_spec.rb @@ -38,10 +38,7 @@ describe "edit" do it "should not allow patching any known kind of file" do ["file.rb", "file.c", "file.py", "file.yml", "file.gemspec", "/tmp/file", "\\\\Temp\\\\file"].each do |file| - proc { - pry_eval "edit -p #{file}" - }.should.raise(NotImplementedError). - message.should =~ /Cannot yet patch false objects!/ + expect { pry_eval "edit -p #{file}" }.to raise_error(NotImplementedError, /Cannot yet patch false objects!/) end end @@ -200,7 +197,7 @@ describe "edit" do nil } - defined?(FOO).should.be.nil + defined?(FOO).should equal nil @t.eval 'edit --ex' @@ -234,11 +231,11 @@ describe "edit" do nil } - defined?(FOO2).should.be.nil + defined?(FOO2).should equal nil @t.eval 'edit -n --ex' - defined?(FOO2).should.be.nil + defined?(FOO2).should equal nil end describe "with --patch" do @@ -250,7 +247,7 @@ describe "edit" do nil } - defined?(FOO3).should.be.nil + defined?(FOO3).should equal nil @t.eval 'edit --ex --patch' @@ -299,9 +296,7 @@ describe "edit" do end it 'should display error message when backtrace level is invalid' do - proc { - @t.eval 'edit -n --ex 4' - }.should.raise(Pry::CommandError) + expect { @t.eval 'edit -n --ex 4' }.to raise_error Pry::CommandError end end end @@ -394,17 +389,11 @@ describe "edit" do end it "should not work with a filename" do - proc { - pry_eval 'edit ruby.rb -i' - }.should.raise(Pry::CommandError). - message.should =~ /Only one of --ex, --temp, --in, --method and FILE/ + expect { pry_eval 'edit ruby.rb -i' }.to raise_error(Pry::CommandError, /Only one of --ex, --temp, --in, --method and FILE/) end it "should not work with nonsense" do - proc { - pry_eval 'edit --in three' - }.should.raise(Pry::CommandError). - message.should =~ /Not a valid range: three/ + expect { pry_eval 'edit --in three' }.to raise_error(Pry::CommandError, /Not a valid range: three/) end end @@ -702,12 +691,12 @@ describe "edit" do @t = pry_tester class BinkyWink eval %{ - def tits_macgee + def m1 binding end } - def tots_macgee + def m2 :jeremy_jones binding end @@ -720,28 +709,26 @@ describe "edit" do it 'should edit method context' do Pry.config.editor = lambda do |file, line| - [file, line].should == BinkyWink.instance_method(:tots_macgee).source_location + [file, line].should == BinkyWink.instance_method(:m2).source_location nil end - t = pry_tester(BinkyWink.new.tots_macgee) + t = pry_tester(BinkyWink.new.m2) t.process_command "edit -m -n" end it 'errors when cannot find method context' do Pry.config.editor = lambda do |file, line| - [file, line].should == BinkyWink.instance_method(:tits_macgee).source_location + [file, line].should == BinkyWink.instance_method(:m1).source_location nil end - t = pry_tester(BinkyWink.new.tits_macgee) - lambda { t.process_command "edit -m -n" }.should. - raise(Pry::CommandError).message.should.match(/Cannot find a file for/) + t = pry_tester(BinkyWink.new.m1) + expect { t.process_command "edit -m -n" }.to raise_error(Pry::CommandError, /Cannot find a file for/) end it 'errors when a filename arg is passed with --method' do - lambda { @t.process_command "edit -m Pry#repl" }.should. - raise(Pry::CommandError).message.should.match(/Only one of/) + expect { @t.process_command "edit -m Pry#repl" }.to raise_error(Pry::CommandError, /Only one of/) end end @@ -750,7 +737,7 @@ describe "edit" do @t = pry_tester class TrinkyDink eval %{ - def claudia_linklater + def m end } end @@ -761,8 +748,7 @@ describe "edit" do end it 'should display a nice error message when cannot open a file' do - lambda { @t.process_command "edit TrinkyDink#claudia_linklater" }.should. - raise(Pry::CommandError).message.should.match(/Cannot find a file for/) + expect { @t.process_command "edit TrinkyDink#m" }.to raise_error(Pry::CommandError, /Cannot find a file for/) end end end diff --git a/spec/commands/exit_all_spec.rb b/spec/commands/exit_all_spec.rb index 7a771c93..16ba0f2f 100644 --- a/spec/commands/exit_all_spec.rb +++ b/spec/commands/exit_all_spec.rb @@ -4,24 +4,24 @@ describe "exit-all" do before { @pry = Pry.new } it "should break out of the repl and return nil" do - @pry.eval("exit-all").should.be.false - @pry.exit_value.should.be.nil + @pry.eval("exit-all").should equal false + @pry.exit_value.should equal nil end it "should break out of the repl wth a user specified value" do - @pry.eval("exit-all 'message'").should.be.false + @pry.eval("exit-all 'message'").should equal false @pry.exit_value.should == "message" end it "should break out of the repl even if multiple bindings still on stack" do - ["cd 1", "cd 2"].each { |line| @pry.eval(line).should.be.true } - @pry.eval("exit-all 'message'").should.be.false + ["cd 1", "cd 2"].each { |line| @pry.eval(line).should equal true } + @pry.eval("exit-all 'message'").should equal false @pry.exit_value.should == "message" end it "should have empty binding_stack after breaking out of the repl" do - ["cd 1", "cd 2"].each { |line| @pry.eval(line).should.be.true } - @pry.eval("exit-all").should.be.false - @pry.binding_stack.should.be.empty + ["cd 1", "cd 2"].each { |line| @pry.eval(line).should equal true } + @pry.eval("exit-all").should equal false + @pry.binding_stack.should be_empty end end diff --git a/spec/commands/exit_program_spec.rb b/spec/commands/exit_program_spec.rb index b80cc7ea..467f5008 100644 --- a/spec/commands/exit_program_spec.rb +++ b/spec/commands/exit_program_spec.rb @@ -2,9 +2,7 @@ require_relative '../helper' describe "exit-program" do it 'should raise SystemExit' do - proc { - pry_eval('exit-program') - }.should.raise SystemExit + expect { pry_eval('exit-program') }.to raise_error SystemExit end it 'should exit the program with the provided value' do diff --git a/spec/commands/exit_spec.rb b/spec/commands/exit_spec.rb index 8cd75876..aff7c5ba 100644 --- a/spec/commands/exit_spec.rb +++ b/spec/commands/exit_spec.rb @@ -11,18 +11,18 @@ describe "exit" do end it "should break out of the repl when binding_stack has only one binding" do - @pry.eval("exit").should.be.false - @pry.exit_value.should.be.nil + @pry.eval("exit").should equal false + @pry.exit_value.should equal nil end it "should break out of the repl and return user-given value" do - @pry.eval("exit :john").should.be.false + @pry.eval("exit :john").should equal false @pry.exit_value.should == :john end it "should break out of the repl even after an exception" do @pry.eval "exit = 42" @pry.output.string.should =~ /^SyntaxError/ - @pry.eval("exit").should.be.false + @pry.eval("exit").should equal false end end diff --git a/spec/commands/find_method_spec.rb b/spec/commands/find_method_spec.rb index a00e8b90..3d942739 100644 --- a/spec/commands/find_method_spec.rb +++ b/spec/commands/find_method_spec.rb @@ -1,41 +1,41 @@ require_relative '../helper' -MyKlass = Class.new do - def hello - "timothy" - end - def goodbye - "jenny" - end - def tea_tim? - "timothy" - end - def tea_time? - "polly" - end -end - describe "find-method" do + MyKlass = Class.new do + def hello + "timothy" + end + def goodbye + "jenny" + end + def tea_tim? + "timothy" + end + def tea_time? + "polly" + end + end + describe "find matching methods by name regex (-n option)" do it "should find a method by regex" do - pry_eval("find-method hell MyKlass").should =~ + pry_eval(binding, "find-method hell MyKlass").should =~ /MyKlass.*?hello/m end it "should NOT match a method that does not match the regex" do - pry_eval("find-method hell MyKlass").should.not =~ + pry_eval(binding, "find-method hell MyKlass").should_not =~ /MyKlass.*?goodbye/m end end describe "find matching methods by content regex (-c option)" do it "should find a method by regex" do - pry_eval("find-method -c timothy MyKlass").should =~ + pry_eval(binding, "find-method -c timothy MyKlass").should =~ /MyKlass.*?hello/m end it "should NOT match a method that does not match the regex" do - pry_eval("find-method timothy MyKlass").should.not =~ + pry_eval(binding, "find-method timothy MyKlass").should_not =~ /MyKlass.*?goodbye/m end end @@ -46,18 +46,16 @@ describe "find-method" do raise "mooo" end - pry_eval("find-method -c timothy MyKlass").should =~ + pry_eval(binding, "find-method -c timothy MyKlass").should =~ /MyKlass.*?hello/m end it "should escape regexes correctly" do good = /tea_time\?/ bad = /tea_tim\?/ - pry_eval('find-method tea_time? MyKlass').should =~ good - pry_eval('find-method tea_time? MyKlass').should =~ good - pry_eval('find-method tea_time\? MyKlass').should.not =~ bad - pry_eval('find-method tea_time\? MyKlass').should =~ good + pry_eval(binding, 'find-method tea_time? MyKlass').should =~ good + pry_eval(binding, 'find-method tea_time? MyKlass').should =~ good + pry_eval(binding, 'find-method tea_time\? MyKlass').should_not =~ bad + pry_eval(binding, 'find-method tea_time\? MyKlass').should =~ good end end - -Object.remove_const(:MyKlass) diff --git a/spec/commands/gem_list_spec.rb b/spec/commands/gem_list_spec.rb index cef5c745..0c6d769e 100644 --- a/spec/commands/gem_list_spec.rb +++ b/spec/commands/gem_list_spec.rb @@ -2,24 +2,22 @@ require_relative '../helper' describe "gem-list" do it 'should not raise when invoked' do - proc { - pry_eval(self, 'gem-list') - }.should.not.raise + expect { pry_eval(self, 'gem-list') }.to_not raise_error end it 'should work arglessly' do list = pry_eval('gem-list') list.should =~ /slop \(/ - list.should =~ /bacon \(/ + list.should =~ /rspec \(/ end it 'should find arg' do prylist = pry_eval('gem-list slop') prylist.should =~ /slop \(/ - prylist.should.not =~ /bacon/ + prylist.should_not =~ /rspec/ end it 'should return non-results as silence' do - pry_eval('gem-list aoeuoueouaou').should.empty? + pry_eval('gem-list aoeuoueouaou').should be_empty end end diff --git a/spec/commands/gist_spec.rb b/spec/commands/gist_spec.rb index dc29ba78..8302ebe5 100644 --- a/spec/commands/gist_spec.rb +++ b/spec/commands/gist_spec.rb @@ -27,6 +27,6 @@ describe 'gist' do it 'nominally logs in' do pry_eval 'gist --login' - Pad.gist_calls[:login!].should.not.be.nil + Pad.gist_calls[:login!].should_not be_nil end end diff --git a/spec/commands/hist_spec.rb b/spec/commands/hist_spec.rb index 3b444eba..55a288dc 100644 --- a/spec/commands/hist_spec.rb +++ b/spec/commands/hist_spec.rb @@ -152,18 +152,15 @@ describe "hist" do it "should raise CommandError when index of `--replay` points out to another `hist --replay`" do @t.eval ":banzai" @t.eval "hist --replay 1" - lambda do - @t.eval "hist --replay 2" - end.should.raise(Pry::CommandError, /Replay index 4 points out to another replay call: `hist --replay 1`/) + + expect { @t.eval "hist --replay 2" }.to raise_error(Pry::CommandError, /Replay index 2 points out to another replay call: `hist --replay 1`/) end it "should disallow execution of `--replay ` when CommandError raised" do @t.eval "a = 0" @t.eval "a += 1" @t.eval "hist --replay 2" - lambda{ - @t.eval "hist --replay 3" - }.should.raise(Pry::CommandError) + expect { @t.eval "hist --replay 3" }.to raise_error Pry::CommandError @t.eval("a").should == 2 @t.eval("hist").lines.to_a.size.should == 5 end diff --git a/spec/commands/ls_spec.rb b/spec/commands/ls_spec.rb index d03479ca..ddc2d2cd 100644 --- a/spec/commands/ls_spec.rb +++ b/spec/commands/ls_spec.rb @@ -3,8 +3,8 @@ require_relative '../helper' describe "ls" do describe "below ceiling" do it "should stop before Object by default" do - pry_eval("cd Class.new{ def goo; end }.new", "ls").should.not =~ /Object/ - pry_eval("cd Class.new{ def goo; end }", "ls -M").should.not =~ /Object/ + pry_eval("cd Class.new{ def goo; end }.new", "ls").should_not =~ /Object/ + pry_eval("cd Class.new{ def goo; end }", "ls -M").should_not =~ /Object/ end it "should include object if -v is given" do @@ -23,8 +23,8 @@ describe "ls" do end it "should not include super-classes when -q is given" do - pry_eval("cd Class.new(Class.new{ def goo; end }).new", "ls -q").should.not =~ /goo/ - pry_eval("cd Class.new(Class.new{ def goo; end })", "ls -M -q").should.not =~ /goo/ + pry_eval("cd Class.new(Class.new{ def goo; end }).new", "ls -q").should_not =~ /goo/ + pry_eval("cd Class.new(Class.new{ def goo; end })", "ls -M -q").should_not =~ /goo/ end end @@ -60,8 +60,8 @@ describe "ls" do end it "should not show protected/private by default" do - pry_eval("ls -M Class.new{ def goo; end; private :goo }").should.not =~ /goo/ - pry_eval("ls Class.new{ def goo; end; protected :goo }.new").should.not =~ /goo/ + pry_eval("ls -M Class.new{ def goo; end; private :goo }").should_not =~ /goo/ + pry_eval("ls Class.new{ def goo; end; protected :goo }.new").should_not =~ /goo/ end it "should show public methods with -p" do @@ -93,12 +93,11 @@ describe "ls" do end end - test.should.not.raise + expect(test).to_not raise_error end it "should show error message when instance is given with -M option" do - error = lambda{ pry_eval("ls -M String.new") }.should.raise(Pry::CommandError) - error.message.should.match(/-M only makes sense with a Module or a Class/) + expect { pry_eval("ls -M String.new") }.to raise_error(Pry::CommandError, /-M only makes sense with a Module or a Class/) end @@ -114,12 +113,12 @@ describe "ls" do describe 'with -l' do it 'should find locals and sort by descending size' do result = pry_eval("aa = 'asdf'; bb = 'xyz'", 'ls -l') - result.should.not =~ /=>/ - result.should.not =~ /0x\d{5}/ + result.should_not =~ /=>/ + result.should_not =~ /0x\d{5}/ result.should =~ /asdf.*xyz/m end it 'should not list pry noise' do - pry_eval('ls -l').should.not =~ /_(?:dir|file|ex|pry|out|in)_/ + pry_eval('ls -l').should_not =~ /_(?:dir|file|ex|pry|out|in)_/ end end @@ -145,7 +144,7 @@ describe "ls" do end it "should behave normally when invoked on Module itself" do - pry_eval("ls Module").should.not =~ /Pry/ + pry_eval("ls Module").should_not =~ /Pry/ end end @@ -162,7 +161,7 @@ describe "ls" do end it "should not show constants defined on parent modules by default" do - pry_eval("class TempFoo2; LHGRAB = 1; end; class TempFoo3 < TempFoo2; BARGHL = 1; end", "ls TempFoo3").should.not =~ /LHGRAB/ + pry_eval("class TempFoo2; LHGRAB = 1; end; class TempFoo3 < TempFoo2; BARGHL = 1; end", "ls TempFoo3").should_not =~ /LHGRAB/ end it "should show constants defined on ancestors with -v" do @@ -171,7 +170,7 @@ describe "ls" do it "should not autoload constants!" do autoload :McflurgleTheThird, "/tmp/this-file-d000esnat-exist.rb" - lambda{ pry_eval("ls -c") }.should.not.raise + expect { pry_eval("ls -c") }.to_not raise_error end it "should show constants for an object's class regardless of mixins" do @@ -179,14 +178,14 @@ describe "ls" do "cd Pry.new", "extend Module.new", "ls -c" - ).should.match(/Method/) + ).should match(/Method/) end end describe "grep" do it "should reduce the number of outputted things" do pry_eval("ls -c Object").should =~ /ArgumentError/ - pry_eval("ls -c Object --grep Run").should.not =~ /ArgumentError/ + pry_eval("ls -c Object --grep Run").should_not =~ /ArgumentError/ end it "should still output matching things" do @@ -234,7 +233,7 @@ describe "ls" do describe 'on java objects' do it 'should omit java-esque aliases by default' do pry_eval('ls java.lang.Thread.current_thread').should =~ /\bthread_group\b/ - pry_eval('ls java.lang.Thread.current_thread').should.not =~ /\bgetThreadGroup\b/ + pry_eval('ls java.lang.Thread.current_thread').should_not =~ /\bgetThreadGroup\b/ end it 'should include java-esque aliases if requested' do diff --git a/spec/commands/play_spec.rb b/spec/commands/play_spec.rb index ed759228..c6964b97 100644 --- a/spec/commands/play_spec.rb +++ b/spec/commands/play_spec.rb @@ -101,7 +101,7 @@ describe "play" do end it 'has pretty error messages when -d cant find object' do - lambda { @t.process_command "play -d sdfsdf" }.should.raise(Pry::CommandError).message.should.match(/Cannot locate/) + expect { @t.process_command "play -d sdfsdf" }.to raise_error(Pry::CommandError, /Cannot locate/) end it 'should play a method (a single line)' do diff --git a/spec/commands/raise_up_spec.rb b/spec/commands/raise_up_spec.rb index bc451649..4df7470b 100644 --- a/spec/commands/raise_up_spec.rb +++ b/spec/commands/raise_up_spec.rb @@ -13,13 +13,13 @@ describe "raise-up" do it "should raise the exception with raise-up" do redirect_pry_io(InputTester.new("raise NoMethodError", "raise-up NoMethodError")) do - lambda { Object.new.pry }.should.raise NoMethodError + expect { Object.new.pry }.to raise_error NoMethodError end end it "should raise an unamed exception with raise-up" do redirect_pry_io(InputTester.new("raise 'stop'","raise-up 'noreally'")) do - lambda { Object.new.pry }.should.raise RuntimeError, "noreally" + expect { Object.new.pry }.to raise_error(RuntimeError, "noreally") end end @@ -34,7 +34,7 @@ describe "raise-up" do end it "should raise the most recently raised exception" do - lambda { mock_pry("raise NameError, 'homographery'","raise-up") }.should.raise NameError, 'homographery' + expect { mock_pry("raise NameError, 'homographery'","raise-up") }.to raise_error(NameError, 'homographery') end it "should allow you to cd up and (eventually) out" do @@ -42,7 +42,7 @@ describe "raise-up" do "deep = :deep", "cd deep","Pad.deep = self", "raise-up NoMethodError", "raise-up", @outer, "raise-up", "exit-all")) do - lambda { Pry.start(:outer) }.should.raise NoMethodError + expect { Pry.start(:outer) }.to raise_error NoMethodError end Pad.deep.should == :deep @@ -51,6 +51,6 @@ describe "raise-up" do end it "should jump immediately out of nested contexts with !" do - lambda { mock_pry("cd 1", "cd 2", "cd 3", "raise-up! 'fancy that...'") }.should.raise RuntimeError, 'fancy that...' + expect { mock_pry("cd 1", "cd 2", "cd 3", "raise-up! 'fancy that...'") }.to raise_error(RuntimeError, 'fancy that...') end end diff --git a/spec/commands/reload_code_spec.rb b/spec/commands/reload_code_spec.rb index f471e4bb..614c5fe7 100644 --- a/spec/commands/reload_code_spec.rb +++ b/spec/commands/reload_code_spec.rb @@ -3,19 +3,19 @@ require_relative '../helper' describe "reload_code" do describe "reload_current_file" do it 'raises an error source code not found' do - proc do + expect do eval <<-RUBY, TOPLEVEL_BINDING, 'does_not_exist.rb', 1 pry_eval(binding, "reload-code") RUBY - end.should.raise(Pry::CommandError) + end.to raise_error(Pry::CommandError) end it 'raises an error when class not found' do - proc do + expect do pry_eval( "cd Class.new(Class.new{ def goo; end; public :goo })", "reload-code") - end.should.raise(Pry::CommandError) + end.to raise_error(Pry::CommandError) end end end diff --git a/spec/commands/shell_command_spec.rb b/spec/commands/shell_command_spec.rb index 422fc3e4..ea0e40fe 100644 --- a/spec/commands/shell_command_spec.rb +++ b/spec/commands/shell_command_spec.rb @@ -14,11 +14,11 @@ describe "Command::ShellCommand" do describe ".cd" do before do - Dir.stubs(:chdir) + allow(Dir).to receive(:chdir) end it "saves the current working directory" do - Dir.stubs(:pwd).returns("initial_path") + expect(Dir).to receive(:pwd).at_least(:once).and_return("initial_path") # called once in MRI, 2x in RBX @t.eval ".cd new_path" @t.command_state.old_pwd.should == "initial_path" @@ -26,14 +26,14 @@ describe "Command::ShellCommand" do describe "given a path" do it "sends the path to File.expand_path" do - Dir.expects(:chdir).with(File.expand_path("new_path")) + expect(Dir).to receive(:chdir).with(File.expand_path("new_path")) @t.eval ".cd new_path" end end describe "given an empty string" do it "sends ~ to File.expand_path" do - Dir.expects(:chdir).with(File.expand_path("~")) + expect(Dir).to receive(:chdir).with(File.expand_path("~")) @t.eval ".cd " end end @@ -41,19 +41,18 @@ describe "Command::ShellCommand" do describe "given a dash" do describe "given no prior directory" do it "raises the correct error" do - lambda { @t.eval ".cd -" }.should.raise(StandardError). - message.should == "No prior directory available" + expect { @t.eval ".cd -" }.to raise_error(StandardError, "No prior directory available") end end describe "given a prior directory" do it "sends the user's last pry working directory to File.expand_path" do - Dir.stubs(:pwd).returns("initial_path") + expect(Dir).to receive(:pwd).at_least(:twice).and_return("initial_path") # called 2x in MRI, 3x in RBX - Dir.expects(:chdir).with(File.expand_path("new_path")) + expect(Dir).to receive(:chdir).with(File.expand_path("new_path")) @t.eval ".cd new_path" - Dir.expects(:chdir).with(File.expand_path("initial_path")) + expect(Dir).to receive(:chdir).with(File.expand_path("initial_path")) @t.eval ".cd -" end end diff --git a/spec/commands/show_doc_spec.rb b/spec/commands/show_doc_spec.rb index 6d347b31..4b7ccae6 100644 --- a/spec/commands/show_doc_spec.rb +++ b/spec/commands/show_doc_spec.rb @@ -19,7 +19,7 @@ describe "show-doc" do end it 'should raise exception when cannot find docs' do - lambda { pry_eval(binding, "show-doc @o.no_docs") }.should.raise(Pry::CommandError) + expect { pry_eval(binding, "show-doc @o.no_docs") }.to raise_error Pry::CommandError end it 'should output a method\'s documentation with line numbers' do @@ -130,7 +130,7 @@ describe "show-doc" do Pry.config.color = true # I don't want the test to rely on which colour codes are there, just to # assert that "something" is being colourized. - t.eval("show-doc c#initialize").should.not =~ /c.new :foo/ + t.eval("show-doc c#initialize").should_not =~ /c.new :foo/ ensure Pry.config.color = false end @@ -150,7 +150,7 @@ describe "show-doc" do Pry.config.color = true # I don't want the test to rely on which colour codes are there, just to # assert that "something" is being colourized. - t.eval("show-doc c#initialize").should.not =~ /c.new\(:foo\)/ + t.eval("show-doc c#initialize").should_not =~ /c.new\(:foo\)/ ensure Pry.config.color = false end @@ -171,7 +171,7 @@ describe "show-doc" do t = pry_tester(binding) Pry.config.color = true t.eval("show-doc c#decolumnize").should =~ /ls -l \$HOME/ - t.eval("show-doc c#decolumnize").should.not =~ /`ls -l \$HOME`/ + t.eval("show-doc c#decolumnize").should_not =~ /`ls -l \$HOME`/ ensure Pry.config.color = false end @@ -336,7 +336,7 @@ describe "show-doc" do end result = pry_eval('show-doc Aarrrrrghh') - result.should.not =~ /available monkeypatches/ + result.should_not =~ /available monkeypatches/ Object.remove_const(:Aarrrrrghh) end end @@ -390,7 +390,7 @@ describe "show-doc" do it 'should return doc for first valid module' do result = pry_eval("show-doc TestHost::M") result.should =~ /goodbye/ - result.should.not =~ /hello/ + result.should_not =~ /hello/ end end end @@ -490,8 +490,7 @@ describe "show-doc" do it 'errors when class has no superclass to show' do t = pry_tester - lambda { t.process_command "show-doc Jesus::Brian" }.should.raise(Pry::CommandError).message. - should =~ /Couldn't locate/ + expect { t.process_command "show-doc Jesus::Brian" }.to raise_error(Pry::CommandError, /Couldn't locate/) end it 'shows warning when reverting to superclass docs' do @@ -552,8 +551,7 @@ describe "show-doc" do it 'errors when module has no included module to show' do t = pry_tester - lambda { t.process_command "show-source Jesus::Zeta" }.should.raise(Pry::CommandError).message. - should =~ /Couldn't locate/ + expect { t.process_command "show-source Jesus::Zeta" }.to raise_error(Pry::CommandError, /Couldn't locate/) end it 'shows nth level included module doc (when no intermediary modules have code either)' do diff --git a/spec/commands/show_source_spec.rb b/spec/commands/show_source_spec.rb index d624555e..4b6d545d 100644 --- a/spec/commands/show_source_spec.rb +++ b/spec/commands/show_source_spec.rb @@ -91,9 +91,7 @@ describe "show-source" do it "should not find instance methods with self.moo" do c = Class.new{ def moo; "ve over!"; end } - proc { - pry_eval(binding, 'cd c', 'show-source self.moo') - }.should.raise(Pry::CommandError).message.should =~ /Couldn't locate/ + expect { pry_eval(binding, 'cd c', 'show-source self.moo') }.to raise_error(Pry::CommandError, /Couldn't locate/) end it "should find normal methods with self.moo" do @@ -105,9 +103,7 @@ describe "show-source" do it "should not find normal methods with self#moo" do c = Class.new{ def self.moo; "ve over!"; end } - proc { - pry_eval(binding, 'cd c', 'show-source self#moo') - }.should.raise(Pry::CommandError).message.should =~ /Couldn't locate/ + expect { pry_eval(binding, 'cd c', 'show-source self#moo') }.to raise_error(Pry::CommandError, /Couldn't locate/) end it "should find normal methods (i.e non-instance methods) by default" do @@ -146,9 +142,7 @@ describe "show-source" do it "should raise a CommandError when super method doesn't exist" do def @o.foo(*bars); end - proc { - pry_eval(binding, "show-source --super @o.foo") - }.should.raise(Pry::CommandError).message.should =~ /No superclass found/ + expect { pry_eval(binding, "show-source --super @o.foo") }.to raise_error(Pry::CommandError, /No superclass found/) end it "should output the source of a method defined inside Pry" do @@ -277,7 +271,7 @@ describe "show-source" do it "source of variable should take precedence over method that is being shadowed" do source = @t.eval('show-source hello') - source.should.not =~ /def hello/ + source.should_not =~ /def hello/ source.should =~ /proc \{ ' smile ' \}/ end @@ -519,7 +513,7 @@ describe "show-source" do end result = pry_eval('show-source Aarrrrrghh') - result.should.not =~ /available monkeypatches/ + result.should_not =~ /available monkeypatches/ Object.remove_const(:Aarrrrrghh) end end @@ -557,16 +551,13 @@ describe "show-source" do end it 'should be unable to find module source if no methods defined' do - proc { - pry_eval(TestHost::C, 'show-source') - }.should.raise(Pry::CommandError). - message.should =~ /Couldn't locate/ + expect { pry_eval(TestHost::C, 'show-source') }.to raise_error(Pry::CommandError, /Couldn't locate/) end it 'should display method code (rather than class) if Pry started inside method binding' do out = TestHost::D.invoked_in_method out.should =~ /invoked_in_method/ - out.should.not =~ /module D/ + out.should_not =~ /module D/ end it 'should display class source when inside instance' do @@ -607,7 +598,7 @@ describe "show-source" do it 'should return source for first valid module' do out = pry_eval('show-source BabyDuck::Muesli') out.should =~ /def d; end/ - out.should.not =~ /def a; end/ + out.should_not =~ /def a; end/ end end end @@ -743,13 +734,12 @@ describe "show-source" do it 'ignores included modules' do t = pry_tester t.process_command "show-source Jesus::Jangle" - t.last_output.should.not =~ /lillybing/ + t.last_output.should_not =~ /lillybing/ end it 'errors when class has no superclass to show' do t = pry_tester - lambda { t.process_command "show-source Jesus::Brian" }.should.raise(Pry::CommandError).message. - should =~ /Couldn't locate/ + expect { t.process_command "show-source Jesus::Brian" }.to raise_error(Pry::CommandError, /Couldn't locate/) end it 'shows warning when reverting to superclass code' do @@ -808,8 +798,7 @@ describe "show-source" do it 'errors when module has no included module to show' do t = pry_tester - lambda { t.process_command "show-source Jesus::Zeta" }.should.raise(Pry::CommandError).message. - should =~ /Couldn't locate/ + expect { t.process_command "show-source Jesus::Zeta" }.to raise_error(Pry::CommandError, /Couldn't locate/) end it 'shows nth level included module code (when no intermediary modules have code either)' do diff --git a/spec/commands/watch_expression_spec.rb b/spec/commands/watch_expression_spec.rb index 765c040a..eb47986f 100644 --- a/spec/commands/watch_expression_spec.rb +++ b/spec/commands/watch_expression_spec.rb @@ -113,7 +113,7 @@ describe "watch expression" do end it "deletes delete" do - eval('watch').should.not =~ /delete/ + eval('watch').should_not =~ /delete/ end end end diff --git a/spec/commands/whereami_spec.rb b/spec/commands/whereami_spec.rb index f19f49d0..d6f7ce3d 100644 --- a/spec/commands/whereami_spec.rb +++ b/spec/commands/whereami_spec.rb @@ -74,9 +74,7 @@ describe "whereami" do END end - lambda{ - Cor.instance_method(:blimey!).source - }.should.raise(MethodSource::SourceNotFoundError) + expect { Cor.instance_method(:blimey!).source }.to raise_error MethodSource::SourceNotFoundError Cor.new.blimey!.should =~ /Cor#blimey!.*Look at me/m Object.remove_const(:Cor) @@ -199,7 +197,7 @@ describe "whereami" do def blimey! out = pry_eval(binding, 'whereami -n') out.should =~ /^\s*def/ - out.should.not =~ /\=\>/ + out.should_not =~ /\=\>/ end end Cor.new.blimey! @@ -214,10 +212,10 @@ describe "whereami" do :punk :sanders - out.should.not =~ /:litella/ + out.should_not =~ /:litella/ out.should =~ /:pig/ out.should =~ /:punk/ - out.should.not =~ /:sanders/ + out.should_not =~ /:sanders/ Pry.config.default_window_size = old_size end diff --git a/spec/completion_spec.rb b/spec/completion_spec.rb index 1207f253..fd810a96 100644 --- a/spec/completion_spec.rb +++ b/spec/completion_spec.rb @@ -30,12 +30,12 @@ describe Pry::InputCompleter do # another jruby hack :(( if !Pry::Helpers::BaseHelpers.jruby? it "should not crash if there's a Module that has a symbolic name." do - lambda{ Pry::InputCompleter.new(Readline).call "a.to_s.", :target => Pry.binding_for(Object.new) }.should.not.raise Exception + expect { Pry::InputCompleter.new(Readline).call "a.to_s.", :target => Pry.binding_for(Object.new) }.not_to raise_error Exception end end it 'should take parenthesis and other characters into account for symbols' do - lambda { Pry::InputCompleter.new(Readline).call(":class)", :target => Pry.binding_for(Object.new)) }.should.not.raise(RegexpError) + expect { Pry::InputCompleter.new(Readline).call ":class)", :target => Pry.binding_for(Object.new) }.not_to raise_error end it 'should complete instance variables' do @@ -209,6 +209,6 @@ describe Pry::InputCompleter do it 'should not return nil in its output' do pry = Pry.new - Pry::InputCompleter.new(Readline, pry).call("pry.", :target => binding).should.not.include nil + Pry::InputCompleter.new(Readline, pry).call("pry.", :target => binding).should_not include nil end end diff --git a/spec/config_spec.rb b/spec/config_spec.rb index 054c49a0..e76b4801 100644 --- a/spec/config_spec.rb +++ b/spec/config_spec.rb @@ -4,7 +4,7 @@ describe Pry::Config do it "raises an ArgumentError on assignment of a reserved key" do local = Pry::Config.new Pry::Config::RESERVED_KEYS.each do |key| - should.raise(ArgumentError) { local[key] = 1 } + expect { local[key] = 1 }.to raise_error ArgumentError end end end @@ -112,7 +112,7 @@ describe Pry::Config do it "compares equality against an object who does not implement #to_hash" do local1 = Pry::Config.new(nil) - local1.should.not == Object.new + local1.should_not == Object.new end end @@ -136,7 +136,7 @@ describe Pry::Config do it "returns a duplicate of the lookup table" do local = Pry::Config.new(nil) local.to_hash.merge!("foo" => 42) - local.foo.should.not == 42 + local.foo.should_not == 42 end end @@ -163,7 +163,7 @@ describe Pry::Config do end it "raises a TypeError for objects who can't become a Hash" do - should.raise(TypeError) { @config.merge!(Object.new) } + expect { @config.merge!(Object.new) }.to raise_error TypeError end end diff --git a/spec/control_d_handler_spec.rb b/spec/control_d_handler_spec.rb index 1c83776d..d4e1a7c4 100644 --- a/spec/control_d_handler_spec.rb +++ b/spec/control_d_handler_spec.rb @@ -20,9 +20,9 @@ describe Pry::DEFAULT_CONTROL_D_HANDLER do describe 'at top-level session' do it 'should break out of a REPL loop' do instance = Pry.new - instance.binding_stack.should.not.be.empty - instance.eval(nil).should.be.false - instance.binding_stack.should.be.empty + instance.binding_stack.should_not be_empty + instance.eval(nil).should equal false + instance.binding_stack.should be_empty end end @@ -31,7 +31,7 @@ describe Pry::DEFAULT_CONTROL_D_HANDLER do t = pry_tester t.eval "cd Object.new" t.eval("_pry_.binding_stack.size").should == 2 - t.eval("_pry_.eval(nil)").should.be.true + t.eval("_pry_.eval(nil)").should equal true t.eval("_pry_.binding_stack.size").should == 1 end diff --git a/spec/documentation_helper_spec.rb b/spec/documentation_helper_spec.rb index 8cab7165..5ff9b6ba 100644 --- a/spec/documentation_helper_spec.rb +++ b/spec/documentation_helper_spec.rb @@ -33,7 +33,7 @@ describe Pry::Helpers::DocumentationHelpers do end it "should syntax highlight indented code" do - @helper.process_rdoc(" 4 + 4\n").should.not == " 4 + 4\n" + @helper.process_rdoc(" 4 + 4\n").should_not == " 4 + 4\n" end it "should highlight words surrounded by +s" do diff --git a/spec/exception_whitelist_spec.rb b/spec/exception_whitelist_spec.rb index 414abbb7..91705c81 100644 --- a/spec/exception_whitelist_spec.rb +++ b/spec/exception_whitelist_spec.rb @@ -7,13 +7,13 @@ describe "Pry.config.exception_whitelist" do it 'should rescue all exceptions NOT specified on whitelist' do Pry.config.exception_whitelist.include?(NameError).should == false - lambda { Pry.start(self, :input => StringIO.new("raise NameError\nexit"), :output => @str_output) }.should.not.raise NameError + expect { Pry.start(self, :input => StringIO.new("raise NameError\nexit"), :output => @str_output) }.not_to raise_error end it 'should NOT rescue exceptions specified on whitelist' do old_whitelist = Pry.config.exception_whitelist Pry.config.exception_whitelist = [NameError] - lambda { Pry.start(self, :input => StringIO.new("raise NameError"), :output => @str_output) }.should.raise NameError + expect { Pry.start(self, :input => StringIO.new("raise NameError"), :output => @str_output) }.to raise_error NameError Pry.config.exception_whitelist = old_whitelist end end diff --git a/spec/helper.rb b/spec/helper.rb index b579d8ca..22fcd91e 100644 --- a/spec/helper.rb +++ b/spec/helper.rb @@ -1,7 +1,6 @@ require 'bundler/setup' require 'pry/test/helper' Bundler.require :default, :test -require_relative 'spec_helpers/bacon' require_relative 'spec_helpers/mock_pry' require_relative 'spec_helpers/repl_tester' @@ -32,3 +31,8 @@ if ENV["SET_TRACE_FUNC"] end puts "Ruby v#{RUBY_VERSION} (#{defined?(RUBY_ENGINE) ? RUBY_ENGINE : "ruby"}), Pry v#{Pry::VERSION}, method_source v#{MethodSource::VERSION}, CodeRay v#{CodeRay::VERSION}, Slop v#{Slop::VERSION}" + +RSpec.configure do |config| + config.alias_example_to :should + config.include PryTestHelpers +end diff --git a/spec/helpers/table_spec.rb b/spec/helpers/table_spec.rb index 5b8dbc92..4a30c962 100644 --- a/spec/helpers/table_spec.rb +++ b/spec/helpers/table_spec.rb @@ -88,9 +88,8 @@ asfadsssaaad fasfaafdssd s end it 'should not raise error' do - should.not.raise(FloatDomainError) { - Pry::Helpers.tablify(@out, @elem_len - 1) - } + expect { Pry::Helpers.tablify(@out, @elem_len - 1) }.not_to raise_error + end it 'should format output as one column' do @@ -99,7 +98,7 @@ asfadsssaaad fasfaafdssd s end end - describe 'decide between one-line or indented output' do - Pry::Helpers.tablify_or_one_line('head', %w(ing)).should == 'head: ing' + should 'decide between one-line or indented output' do + Pry::Helpers.tablify_or_one_line('head', %w(ing)).should == "head: ing\n" end end diff --git a/spec/history_spec.rb b/spec/history_spec.rb index d782f115..6b33bb1f 100644 --- a/spec/history_spec.rb +++ b/spec/history_spec.rb @@ -162,11 +162,11 @@ describe Pry do history = Pry::History.new(file_path: '~/test_history') error = Class.new(RuntimeError) - File.expects(:open). + expect(File).to receive(:open). with(File.join(ENV['HOME'].to_s, "/test_history"), 'a', 0600). - raises(error) + and_raise(error) - -> { history.push 'a line' }.should.raise(error) + expect { history.push 'a line' }.to raise_error error end end end diff --git a/spec/hooks_spec.rb b/spec/hooks_spec.rb index ba28ce6d..8248f03e 100644 --- a/spec/hooks_spec.rb +++ b/spec/hooks_spec.rb @@ -15,7 +15,7 @@ describe Pry::Hooks do it 'should not allow adding of a hook with a duplicate name' do @hooks.add_hook(:test_hook, :my_name) {} - lambda { @hooks.add_hook(:test_hook, :my_name) {} }.should.raise ArgumentError + expect { @hooks.add_hook(:test_hook, :my_name) {} }.to raise_error end it 'should create a new hook with a block' do @@ -39,7 +39,7 @@ describe Pry::Hooks do end it 'should raise if not given a block or any other object' do - lambda { @hooks.add_hook(:test_hook, :my_name) }.should.raise ArgumentError + expect { @hooks.add_hook(:test_hook, :my_name) }.to raise_error ArgumentError end it 'should create multiple hooks for an event' do @@ -69,7 +69,7 @@ describe Pry::Hooks do h2.merge!(h1) h2.add_hook(:test_hook, :testing2) {} - h2.get_hook(:test_hook, :testing2).should.not == h1.get_hook(:test_hook, :testing2) + h2.get_hook(:test_hook, :testing2).should_not == h1.get_hook(:test_hook, :testing2) end it 'should NOT overwrite hooks belonging to shared event in receiver' do @@ -114,8 +114,8 @@ describe Pry::Hooks do h2 = Pry::Hooks.new h3 = h2.merge(h1) - h3.should.not == h1 - h3.should.not == h2 + h3.should_not == h1 + h3.should_not == h2 end it 'should contain hooks from original instance' do @@ -158,7 +158,7 @@ describe Pry::Hooks do hooks_dup.add_hook(:other_test_hook, :testing) { :okay_man } - hooks_dup.get_hook(:other_test_hook, :testing).should.not == @hooks.get_hook(:other_test_hook, :testing) + hooks_dup.get_hook(:other_test_hook, :testing).should_not == @hooks.get_hook(:other_test_hook, :testing) end it 'adding a new hook to dupped instance should not affect original' do @@ -167,7 +167,7 @@ describe Pry::Hooks do hooks_dup.add_hook(:test_hook, :testing2) { :okay_man } - hooks_dup.get_hook(:test_hook, :testing2).should.not == @hooks.get_hook(:test_hook, :testing2) + hooks_dup.get_hook(:test_hook, :testing2).should_not == @hooks.get_hook(:test_hook, :testing2) end end @@ -403,7 +403,7 @@ describe Pry::Hooks do Pry.start(self, :hooks => hooks) end out.string.should =~ /little_duck/ - out.string.should.not =~ /jemima/ + out.string.should_not =~ /jemima/ end it 'should not interfere with command processing when replacing input code' do @@ -420,7 +420,7 @@ describe Pry::Hooks do Pry.start(self, :hooks => hooks, :commands => commands) end out.string.should =~ /in hours of bitterness i imagine balls of sapphire, of metal/ - out.string.should.not =~ /little_duck/ + out.string.should_not =~ /little_duck/ end end @@ -437,9 +437,7 @@ describe Pry::Hooks do Pry.config.hooks.delete_hook(:after_eval, :simbads) end it "should not raise exceptions" do - lambda{ - mock_pry("1", "2", "3") - }.should.not.raise + expect { mock_pry("1", "2", "3") }.to_not raise_error end it "should print out a notice for each exception raised" do diff --git a/spec/indent_spec.rb b/spec/indent_spec.rb index 6be02708..025417b7 100644 --- a/spec/indent_spec.rb +++ b/spec/indent_spec.rb @@ -287,9 +287,7 @@ OUTPUT result = line.split("#").last.strip if result == "" it "should fail to parse nesting on line #{i + 1} of example_nesting.rb" do - lambda { - Pry::Indent.nesting_at(test, i + 1) - }.should.raise(Pry::Indent::UnparseableNestingError) + expect { Pry::Indent.nesting_at(test, i + 1) }.to raise_error Pry::Indent::UnparseableNestingError end else it "should parse nesting on line #{i + 1} of example_nesting.rb" do diff --git a/spec/method_spec.rb b/spec/method_spec.rb index b6672670..a0f62e01 100644 --- a/spec/method_spec.rb +++ b/spec/method_spec.rb @@ -93,7 +93,7 @@ describe Pry::Method do end it 'should not raise an exception if receiver does not exist' do - lambda { Pry::Method.from_str("random_klass.meth", Pry.binding_for(binding)) }.should.not.raise + expect { Pry::Method.from_str("random_klass.meth", Pry.binding_for(binding)) }.to_not raise_error end end @@ -228,7 +228,7 @@ describe Pry::Method do describe 'all_from_class' do def should_find_method(name) - Pry::Method.all_from_class(@class).map(&:name).should.include(name) + Pry::Method.all_from_class(@class).map(&:name).should include name end it 'should be able to find public instance methods defined in a class' do @@ -281,7 +281,7 @@ describe Pry::Method do describe 'all_from_obj' do describe 'on normal objects' do def should_find_method(name) - Pry::Method.all_from_obj(@obj).map(&:name).should.include(name) + Pry::Method.all_from_obj(@obj).map(&:name).should include name end it "should find methods defined in the object's class" do @@ -313,7 +313,7 @@ describe Pry::Method do it "should not find methods defined on the classes singleton class" do @obj = Class.new{ class << self; def meth; 1; end; end }.new - Pry::Method.all_from_obj(@obj).map(&:name).should.not.include('meth') + Pry::Method.all_from_obj(@obj).map(&:name).should_not include 'meth' end it "should work in the face of an overridden send" do @@ -324,7 +324,7 @@ describe Pry::Method do describe 'on classes' do def should_find_method(name) - Pry::Method.all_from_obj(@class).map(&:name).should.include(name) + Pry::Method.all_from_obj(@class).map(&:name).should include name end it "should find methods defined in the class' singleton class" do @@ -344,7 +344,7 @@ describe Pry::Method do it "should not find methods defined within the class" do @class = Class.new{ def meth; 1; end } - Pry::Method.all_from_obj(@obj).map(&:name).should.not.include('meth') + Pry::Method.all_from_obj(@obj).map(&:name).should_not include 'meth' end it "should find methods defined on Class" do @@ -473,12 +473,12 @@ describe Pry::Method do it 'should return an empty Array if cannot find aliases' do meth = Pry::Method(@class.new.method(:eruct)) - meth.aliases.should.be.empty + meth.aliases.should be_empty end it 'should not include the own name in the list of aliases' do meth = Pry::Method(@class.new.method(:eat)) - meth.aliases.should.not.include "eat" + meth.aliases.should_not include "eat" end it 'should find aliases for top-level methods' do @@ -490,7 +490,7 @@ describe Pry::Method do end meth = Pry::Method.new(method(:my_top_level_method)) - meth.aliases.should.include 'my_other_top_level_method' + meth.aliases.should include 'my_other_top_level_method' class Object remove_method :my_top_level_method diff --git a/spec/pager_spec.rb b/spec/pager_spec.rb index 5e64b2cc..e02089b3 100644 --- a/spec/pager_spec.rb +++ b/spec/pager_spec.rb @@ -27,40 +27,40 @@ describe "Pry::Pager" do it "records short lines that don't add up to a page" do 9.times { record_short_line } - @pt.page?.should.be.false + @pt.page?.should equal false end it "records short lines that do add up to a page" do 10.times { record_short_line } - @pt.page?.should.be.true + @pt.page?.should equal true end it "treats a long line as taking up more than one row" do 4.times { record_long_line } - @pt.page?.should.be.false + @pt.page?.should equal false record_long_line - @pt.page?.should.be.true + @pt.page?.should equal true end it "records a string with an embedded newline" do 3.times { record_multiline } - @pt.page?.should.be.false + @pt.page?.should equal false record_short_line - @pt.page?.should.be.true + @pt.page?.should equal true end it "doesn't count a line until it ends" do 12.times { record_string_without_newline } - @pt.page?.should.be.false + @pt.page?.should equal false record_short_line - @pt.page?.should.be.true + @pt.page?.should equal true end it "doesn't count ansi color codes towards length" do 9.times { record_string_with_color_codes } - @pt.page?.should.be.false + @pt.page?.should equal false record_string_with_color_codes - @pt.page?.should.be.true + @pt.page?.should equal true end end end diff --git a/spec/prompt_spec.rb b/spec/prompt_spec.rb index ddda435c..faf09285 100644 --- a/spec/prompt_spec.rb +++ b/spec/prompt_spec.rb @@ -29,7 +29,7 @@ describe "Prompts" do config.expr_number.should == 1 config.cont.should == true config._pry_.is_a?(Pry).should == true - config.object.should == self + expect(config.object).to eq self end end diff --git a/spec/pry_defaults_spec.rb b/spec/pry_defaults_spec.rb index 404094d8..f0b1bb30 100644 --- a/spec/pry_defaults_spec.rb +++ b/spec/pry_defaults_spec.rb @@ -53,7 +53,7 @@ describe "test Pry defaults" do end end.new - lambda { Pry.start(self, :input => arity_zero_input, :output => StringIO.new) }.should.not.raise Exception + expect { Pry.start(self, :input => arity_zero_input, :output => StringIO.new) }.to_not raise_error end it 'should not pass in the prompt if the arity is -1' do @@ -88,7 +88,7 @@ describe "test Pry defaults" do Pry.config.input = InputTester.new("7") @str_output = StringIO.new Object.new.pry :output => @str_output - @str_output.string.should.not =~ /5\n.*6/ + @str_output.string.should_not =~ /5\n.*6/ @str_output.string.should =~ /7/ end @@ -367,7 +367,7 @@ describe "test Pry defaults" do describe 'toplevel_binding' do it 'should be devoid of local variables' do - pry_eval(Pry.toplevel_binding, "ls -l").should.not =~ /version/ + pry_eval(Pry.toplevel_binding, "ls -l").should_not =~ /version/ end it 'should have self the same as TOPLEVEL_BINDING' do diff --git a/spec/pry_output_spec.rb b/spec/pry_output_spec.rb index dc594003..f5da72bb 100644 --- a/spec/pry_output_spec.rb +++ b/spec/pry_output_spec.rb @@ -9,9 +9,7 @@ describe Pry do it "should catch serialization exceptions" do Pry.config.print = lambda { |*a| raise "catch-22" } - lambda { - mock_pry("1") - }.should.not.raise + expect { mock_pry("1") }.to_not raise_error end it "should display serialization exceptions" do diff --git a/spec/pry_spec.rb b/spec/pry_spec.rb index 364e7427..97e1191d 100644 --- a/spec/pry_spec.rb +++ b/spec/pry_spec.rb @@ -52,12 +52,12 @@ describe Pry do raise end - lambda { Pry.binding_for(o) }.should.not.raise Exception + expect { Pry.binding_for(o) }.to_not raise_error end it "should not leak local variables" do [Object.new, Array, 3].each do |obj| - Pry.binding_for(obj).eval("local_variables").should.be.empty + Pry.binding_for(obj).eval("local_variables").should be_empty end end @@ -80,12 +80,12 @@ describe Pry do it "returns a frozen exception" do @pry.last_exception = @e.freeze - @pry.last_exception.should.be.frozen? + expect(@pry.last_exception).to be_frozen end it "returns an object who mirrors itself as the wrapped exception" do @pry.last_exception = @e.freeze - @pry.last_exception.should.be.instance_of?(StandardError) + expect(@pry.last_exception).to be_an_instance_of StandardError end end @@ -102,9 +102,7 @@ describe Pry do # bug fix for https://github.com/banister/pry/issues/93 it 'should not leak pry constants into Object namespace' do - lambda{ - pry_eval(Object.new, "Command") - }.should.raise(NameError) + expect { pry_eval(Object.new, "Command") }.to raise_error end it 'should be able to operate inside the BasicObject class' do @@ -156,9 +154,9 @@ describe Pry do end it 'should not try to catch intended exceptions' do - lambda { mock_pry("raise SystemExit") }.should.raise SystemExit + expect { mock_pry("raise SystemExit") }.to raise_error SystemExit # SIGTERM - lambda { mock_pry("raise SignalException.new(15)") }.should.raise SignalException + expect { mock_pry("raise SignalException.new(15)") }.to raise_error SignalException end describe "multi-line input" do @@ -247,7 +245,7 @@ describe Pry do t.eval "42" res = t.eval "_out_" - res.should.be.kind_of Pry::HistoryArray + res.should be_a_kind_of Pry::HistoryArray res[1..2].should == [:foo, 42] end @@ -257,7 +255,7 @@ describe Pry do t.eval "42" res = t.eval "_in_" - res.should.be.kind_of Pry::HistoryArray + res.should be_a_kind_of Pry::HistoryArray res[1..2].should == [":foo\n", "42\n"] end @@ -273,7 +271,7 @@ describe Pry do mock_pry("foo!", "Pad.in = _in_[-1]; Pad.out = _out_[-1]") Pad.in.should == "foo!\n" - Pad.out.should.be.kind_of NoMethodError + expect(Pad.out).to be_a_kind_of NoMethodError end end @@ -379,7 +377,7 @@ describe Pry do end it "should raise if more than two arguments are passed to Object#pry" do - lambda { pry(20, :quiet, :input => Readline) }.should.raise ArgumentError + expect { pry(20, :quiet, :input => Readline) }.to raise_error ArgumentError end end @@ -396,9 +394,7 @@ describe Pry do describe 'setting custom options' do it 'does not raise for unrecognized options' do - should.not.raise?(NoMethodError) { - instance = Pry.new(:custom_option => 'custom value') - } + expect { instance = Pry.new(:custom_option => 'custom value') }.to_not raise_error end it 'correctly handles the :quiet option (#1261)' do @@ -412,8 +408,8 @@ describe Pry do location = "#{__FILE__}:#{__LINE__ + 1}"[1..-1] # omit leading . backtrace = Pry.new.backtrace - backtrace.should.not.be.nil - backtrace.any? { |l| l.include?(location) }.should.be.true + backtrace.should_not equal nil + backtrace.any? { |l| l.include?(location) }.should equal true end end end diff --git a/spec/pryrc_spec.rb b/spec/pryrc_spec.rb index ade04736..df0993ff 100644 --- a/spec/pryrc_spec.rb +++ b/spec/pryrc_spec.rb @@ -41,7 +41,7 @@ describe Pry do old_home = ENV['HOME'] ENV['HOME'] = nil Pry.config.should_load_rc = true - lambda { Pry.start(self, :input => StringIO.new("exit-all\n"), :output => StringIO.new) }.should.not.raise + expect { Pry.start(self, :input => StringIO.new("exit-all\n"), :output => StringIO.new) }.to_not raise_error ENV['HOME'] = old_home end @@ -79,7 +79,7 @@ describe Pry do end it "should not raise exceptions" do - @doing_it.should.not.raise + expect(&@doing_it).to_not raise_error end it "should continue to run pry" do diff --git a/spec/spec_helpers/bacon.rb b/spec/spec_helpers/bacon.rb deleted file mode 100644 index 2a7721a5..00000000 --- a/spec/spec_helpers/bacon.rb +++ /dev/null @@ -1,86 +0,0 @@ -# Colorize output (based on greeneggs (c) 2009 Michael Fleet) -# TODO: Make own gem (assigned to rking) -module Bacon - class Context - include PryTestHelpers - end - - COLORS = {'F' => 31, 'E' => 35, 'M' => 33, '.' => 32} - USE_COLOR = !(ENV['NO_PRY_COLORED_BACON'] == 'true') && Pry::Helpers::BaseHelpers.use_ansi_codes? - - module TestUnitOutput - def handle_requirement(description) - error = yield - - if error.empty? - print colorize_string('.') - else - print colorize_string(error[0..0]) - end - end - - def handle_summary - puts - puts ErrorLog if Backtraces - - out = "%d tests, %d assertions, %d failures, %d errors" % - Counter.values_at(:specifications, :requirements, :failed, :errors) - - if Counter.values_at(:failed, :errors).inject(:+) > 0 - puts colorize_string(out, 'F') - else - puts colorize_string(out, '.') - end - end - - def colorize_string(text, color = nil) - if USE_COLOR - "\e[#{ COLORS[color || text] }m#{ text }\e[0m" - else - text - end - end - end -end - -# Reset top-level binding at the beginning of each test case. -module Bacon - class Context - def it_with_reset_binding(description, &block) - Pry.toplevel_binding = nil - it_without_reset_binding(description, &block) - end - alias it_without_reset_binding it - alias it it_with_reset_binding - end -end - -# Support mocha -# mocha-on-bacon (c) Copyright (C) 2011, Eloy DurĂ¡n -module Bacon - module MochaRequirementsCounter - def self.increment - Counter[:requirements] += 1 - end - end - - class Context - include Mocha::API - - def it_with_mocha(description, &block) - it_without_mocha(description) do - begin - mocha_setup - block.call - mocha_verify(MochaRequirementsCounter) - rescue Mocha::ExpectationError => e - raise Error.new(:failed, e.message) - ensure - mocha_teardown - end - end - end - alias it_without_mocha it - alias it it_with_mocha - end -end diff --git a/spec/spec_helpers/repl_tester.rb b/spec/spec_helpers/repl_tester.rb index 51457e13..3e1b73de 100644 --- a/spec/spec_helpers/repl_tester.rb +++ b/spec/spec_helpers/repl_tester.rb @@ -89,7 +89,7 @@ class ReplTester # @private def ensure_exit if @should_exit_naturally - @thread[:session_ended].should.be.true + raise "Session was not ended!" unless @thread[:session_ended].equal?(true) else input "exit-all" raise "REPL didn't die" unless @thread[:session_ended] diff --git a/spec/sticky_locals_spec.rb b/spec/sticky_locals_spec.rb index 7caf931d..d413e5b8 100644 --- a/spec/sticky_locals_spec.rb +++ b/spec/sticky_locals_spec.rb @@ -2,15 +2,11 @@ require_relative 'helper' describe "Sticky locals (_file_ and friends)" do it 'locals should all exist upon initialization' do - proc { - pry_eval '_file_', '_dir_', '_ex_', '_pry_', '_' - }.should.not.raise(NameError) + expect { pry_eval '_file_', '_dir_', '_ex_', '_pry_', '_' }.to_not raise_error end it 'locals should still exist after cd-ing into a new context' do - proc { - pry_eval 'cd 0', '_file_', '_dir_', '_ex_', '_pry_', '_' - }.should.not.raise(NameError) + expect { pry_eval 'cd 0', '_file_', '_dir_', '_ex_', '_pry_', '_' }.to_not raise_error end it 'locals should keep value after cd-ing (_pry_)' do @@ -173,7 +169,7 @@ describe "Sticky locals (_file_ and friends)" do pry.add_sticky_local(:test_local) { rand } value1 = pry.evaluate_ruby 'test_local' value2 = pry.evaluate_ruby 'test_local' - value1.should.not == value2 + value1.should_not == value2 end end diff --git a/spec/syntax_checking_spec.rb b/spec/syntax_checking_spec.rb index cd2700f9..1f7f6dbd 100644 --- a/spec/syntax_checking_spec.rb +++ b/spec/syntax_checking_spec.rb @@ -19,7 +19,7 @@ describe Pry do Pry.start end - @str_output.string.should.not =~ /SyntaxError/ + @str_output.string.should_not =~ /SyntaxError/ end end diff --git a/spec/wrapped_module_spec.rb b/spec/wrapped_module_spec.rb index d3d32d04..c252036d 100644 --- a/spec/wrapped_module_spec.rb +++ b/spec/wrapped_module_spec.rb @@ -4,7 +4,7 @@ describe Pry::WrappedModule do describe "#initialize" do it "should raise an exception when a non-module is passed" do - lambda{ Pry::WrappedModule.new(nil) }.should.raise ArgumentError + expect { Pry::WrappedModule.new(nil) }.to raise_error ArgumentError end end @@ -67,7 +67,7 @@ describe Pry::WrappedModule do end it 'should raise when trying to access non-existent candidate' do - lambda { Pry::WrappedModule(Host::CandidateTest).candidate(3) }.should.raise Pry::CommandError + expect { Pry::WrappedModule(Host::CandidateTest).candidate(3) }.to raise_error Pry::CommandError end end @@ -162,15 +162,15 @@ describe Pry::WrappedModule do Pry::WrappedModule.new(class << Foo; self; end).method_prefix.should == "Foo." end - describe "of singleton classes of objects" do + example "of singleton classes of objects" do Pry::WrappedModule.new(class << @foo; self; end).method_prefix.should == "self." end - describe "of anonymous classes should not be empty" do + example "of anonymous classes should not be empty" do Pry::WrappedModule.new(Class.new).method_prefix.should =~ /##/ end - describe "of singleton classes of anonymous classes should not be empty" do + example "of singleton classes of anonymous classes should not be empty" do Pry::WrappedModule.new(class << Class.new; self; end).method_prefix.should =~ /#./ end end @@ -191,7 +191,7 @@ describe Pry::WrappedModule do describe ".singleton_instance" do it "should raise an exception when called on a non-singleton-class" do - lambda{ Pry::WrappedModule.new(Class).singleton_instance }.should.raise ArgumentError + expect { Pry::WrappedModule.new(Class).singleton_instance }.to raise_error ArgumentError end it "should return the attached object" do @@ -256,21 +256,27 @@ describe Pry::WrappedModule do end describe ".from_str" do + before do + class Namespace + Value = Class.new + end + end + it 'should lookup a constant' do - m = Pry::WrappedModule.from_str("Host::CandidateTest", binding) - m.wrapped.should == Host::CandidateTest + m = Pry::WrappedModule.from_str("Namespace::Value", binding) + m.wrapped.should == Namespace::Value end it 'should lookup a local' do - local = Host::CandidateTest + local = Namespace::Value m = Pry::WrappedModule.from_str("local", binding) - m.wrapped.should == Host::CandidateTest + m.wrapped.should == Namespace::Value end it 'should lookup an ivar' do - @ivar = Host::CandidateTest + @ivar = Namespace::Value m = Pry::WrappedModule.from_str("@ivar", binding) - m.wrapped.should == Host::CandidateTest + m.wrapped.should == Namespace::Value end end end