Sha256: 37100a35c5955c1f79d2e8e19f2eacd7eb27c410497d519f5a3f0bb6c04fdaf9
Contents?: true
Size: 1.73 KB
Versions: 52
Compression:
Stored size: 1.73 KB
Contents
require File.expand_path('../../../spec_helper', __FILE__) require File.expand_path('../fixtures/classes', __FILE__) require File.expand_path('../shared/new', __FILE__) describe "IO.open" do it_behaves_like :io_new, :open end describe "IO.open" do it_behaves_like :io_new_errors, :open end # These specs use a special mock helper to avoid mock # methods from preventing IO#close from running and # which would prevent the file referenced by @fd from # being deleted on Windows. describe "IO.open" do before :each do @name = tmp("io_open.txt") @fd = new_fd @name ScratchPad.clear end after :each do rm_r @name end it "calls #close after yielding to the block" do IO.open(@fd, "w") do |io| IOSpecs.io_mock(io, :close) do super() ScratchPad.record :called end io.closed?.should be_false end ScratchPad.recorded.should == :called end it "propagates an exception raised by #close that is not a StandardError" do lambda do IO.open(@fd, "w") do |io| IOSpecs.io_mock(io, :close) do super() ScratchPad.record :called raise Exception end end end.should raise_error(Exception) ScratchPad.recorded.should == :called end it "does not propagate a StandardError raised by #close" do IO.open(@fd, "w") do |io| IOSpecs.io_mock(io, :close) do super() ScratchPad.record :called raise StandardError end end ScratchPad.recorded.should == :called end it "does not set last error when a StandardError raised by #close" do IO.open(@fd, "w") do |io| IOSpecs.io_mock(io, :close) do super() raise StandardError end end $!.should == nil end end
Version data entries
52 entries across 52 versions & 2 rubygems