1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* test/csv/test_csv.rb: use remove_const to reduce warnings. use Dir.tmpdir to

locate working files.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4491 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nahi 2003-09-04 09:08:30 +00:00
parent 0b9b7d630a
commit 11d439a7bd
3 changed files with 77 additions and 76 deletions

View file

@ -1,3 +1,8 @@
Wed Sep 4 18:02:15 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
* test/csv/test_csv.rb: use remove_const to reduce warnings. use
Dir.tmpdir to locate working files.
Thu Sep 4 17:41:31 2003 Nobuyoshi Nakada <nobu@ruby-lang.org> Thu Sep 4 17:41:31 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
* misc/ruby-mode.el (ruby-here-doc-beg-re): underscore also is * misc/ruby-mode.el (ruby-here-doc-beg-re): underscore also is

View file

@ -1,11 +1,13 @@
require 'test/unit' require 'test/unit'
require 'tempfile' require 'tempfile'
require 'fileutils'
require '../../lib/csv' require 'csv'
class CSV class CSV
class StreamBuf class StreamBuf
# Let buffer work hard. # Let buffer work hard.
remove_const("BufSize")
BufSize = 2 BufSize = 2
end end
end end
@ -70,26 +72,8 @@ class TestCSV < Test::Unit::TestCase
[d('foo'), d('"'), d('baz')] => 'foo,"""",baz', [d('foo'), d('"'), d('baz')] => 'foo,"""",baz',
} }
@@tmpdir = 'tmp' # File.join(Dir.tmpdir, "ruby_test_csv_tmp_#{$$}"); Dir.mkdir(@@tmpdir)
@@infile = File.join(@@tmpdir, 'in.csv')
@@infiletsv = File.join(@@tmpdir, 'in.tsv')
@@emptyfile = File.join(@@tmpdir, 'empty.csv')
@@outfile = File.join(@@tmpdir, 'out.csv')
@@fullCSVDataArray = @@fullCSVData.collect { |key, value| key } @@fullCSVDataArray = @@fullCSVData.collect { |key, value| key }
CSV.open(@@infile, "w") do |writer|
@@fullCSVDataArray.each do |row|
writer.add_row(row)
end
end
CSV.open(@@infiletsv, "w", ?\t) do |writer|
@@fullCSVDataArray.each do |row|
writer.add_row(row)
end
end
def ssv2csv(ssvStr) def ssv2csv(ssvStr)
sepConv(ssvStr, ?;, ?,) sepConv(ssvStr, ?;, ?,)
end end
@ -117,11 +101,33 @@ class TestCSV < Test::Unit::TestCase
public public
def setup def setup
# Nothing to do. @tmpdir = File.join(Dir.tmpdir, "ruby_test_csv_tmp_#{$$}")
Dir.mkdir(@tmpdir)
@infile = File.join(@tmpdir, 'in.csv')
@infiletsv = File.join(@tmpdir, 'in.tsv')
@emptyfile = File.join(@tmpdir, 'empty.csv')
@outfile = File.join(@tmpdir, 'out.csv')
@bomfile = File.join(File.dirname(__FILE__), "bom.csv")
CSV.open(@infile, "w") do |writer|
@@fullCSVDataArray.each do |row|
writer.add_row(row)
end
end
CSV.open(@infiletsv, "w", ?\t) do |writer|
@@fullCSVDataArray.each do |row|
writer.add_row(row)
end
end
CSV.generate(@emptyfile) do |writer|
# Create empty file.
end
end end
def teardown def teardown
# Nothing to do. FileUtils.rm_rf(@tmpdir)
end end
def d(*arg) def d(*arg)
@ -266,7 +272,7 @@ public
#### CSV::Reader unit test #### CSV::Reader unit test
def test_Reader_each def test_Reader_each
file = File.open(@@infile, "rb") file = File.open(@infile, "rb")
begin begin
reader = CSV::Reader.create(file) reader = CSV::Reader.create(file)
expectedArray = @@fullCSVDataArray.dup expectedArray = @@fullCSVDataArray.dup
@ -300,7 +306,7 @@ public
end end
def test_Reader_shift def test_Reader_shift
file = File.open(@@infile, "rb") file = File.open(@infile, "rb")
begin begin
reader = CSV::Reader.create(file) reader = CSV::Reader.create(file)
first = true first = true
@ -344,13 +350,13 @@ public
end end
def test_IOReader_close_on_terminate def test_IOReader_close_on_terminate
f = File.open(@@infile, "r") f = File.open(@infile, "r")
reader = CSV::IOReader.create(f) reader = CSV::IOReader.create(f)
reader.close reader.close
assert(!f.closed?) assert(!f.closed?)
f.close f.close
f = File.open(@@infile, "r") f = File.open(@infile, "r")
writer = CSV::IOReader.create(f) writer = CSV::IOReader.create(f)
writer.close_on_terminate writer.close_on_terminate
writer.close writer.close
@ -358,7 +364,7 @@ public
end end
def test_Reader_close def test_Reader_close
f = File.open(@@infile, "r") f = File.open(@infile, "r")
reader = CSV::IOReader.create(f) reader = CSV::IOReader.create(f)
reader.close_on_terminate reader.close_on_terminate
reader.close reader.close
@ -375,7 +381,7 @@ public
reader = CSV::Reader.create("abc") reader = CSV::Reader.create("abc")
assert_instance_of(CSV::StringReader, reader, "With a String") assert_instance_of(CSV::StringReader, reader, "With a String")
reader = CSV::Reader.create(File.open(@@infile, "rb")) reader = CSV::Reader.create(File.open(@infile, "rb"))
assert_instance_of(CSV::IOReader, reader, 'With an IO') assert_instance_of(CSV::IOReader, reader, 'With an IO')
obj = Object.new obj = Object.new
@ -503,7 +509,7 @@ public
end end
def test_Writer_close def test_Writer_close
f = File.open(@@outfile, "w") f = File.open(@outfile, "w")
writer = CSV::BasicWriter.create(f) writer = CSV::BasicWriter.create(f)
writer.close_on_terminate writer.close_on_terminate
writer.close writer.close
@ -511,12 +517,12 @@ public
end end
def test_BasicWriter_close_on_terminate def test_BasicWriter_close_on_terminate
f = File.open(@@outfile, "w") f = File.open(@outfile, "w")
writer = CSV::BasicWriter.create(f) writer = CSV::BasicWriter.create(f)
writer.close writer.close
assert(!f.closed?) assert(!f.closed?)
f = File.open(@@outfile, "w") f = File.open(@outfile, "w")
writer = CSV::BasicWriter.create(f) writer = CSV::BasicWriter.create(f)
writer.close_on_terminate writer.close_on_terminate
writer.close writer.close
@ -535,24 +541,24 @@ public
CSV.open("temp", "a", ?;) CSV.open("temp", "a", ?;)
end end
reader = CSV.open(@@infile, "r") reader = CSV.open(@infile, "r")
assert_instance_of(CSV::IOReader, reader) assert_instance_of(CSV::IOReader, reader)
reader.close reader.close
reader = CSV.open(@@infile, "rb") reader = CSV.open(@infile, "rb")
assert_instance_of(CSV::IOReader, reader) assert_instance_of(CSV::IOReader, reader)
reader.close reader.close
reader = CSV.open(@@infile, "r", ?;) reader = CSV.open(@infile, "r", ?;)
assert_instance_of(CSV::IOReader, reader) assert_instance_of(CSV::IOReader, reader)
reader.close reader.close
CSV.open(@@infile, "r") do |row| CSV.open(@infile, "r") do |row|
assert_instance_of(CSV::Row, row) assert_instance_of(CSV::Row, row)
break break
end end
CSV.open(@@infiletsv, "r", ?\t) do |row| CSV.open(@infiletsv, "r", ?\t) do |row|
assert_instance_of(CSV::Row, row) assert_instance_of(CSV::Row, row)
break break
end end
@ -566,46 +572,46 @@ public
end end
# Illegal format. # Illegal format.
File.open(@@outfile, "w") do |f| File.open(@outfile, "w") do |f|
f << "a,b\r\na,b,\"c\"\ra" f << "a,b\r\na,b,\"c\"\ra"
end end
assert_raises(CSV::IllegalFormatError) do assert_raises(CSV::IllegalFormatError) do
CSV.open(@@outfile, "r") do |row| CSV.open(@outfile, "r") do |row|
end end
end end
File.open(@@outfile, "w") do |f| File.open(@outfile, "w") do |f|
f << "a,b\r\na,b\"" f << "a,b\r\na,b\""
end end
assert_raises(CSV::IllegalFormatError) do assert_raises(CSV::IllegalFormatError) do
CSV.open(@@outfile, "r") do |row| CSV.open(@outfile, "r") do |row|
end end
end end
CSV.open(@@emptyfile, "r") do |row| CSV.open(@emptyfile, "r") do |row|
assert_fail("Must not reach here") assert_fail("Must not reach here")
end end
end end
def test_s_parse def test_s_parse
reader = CSV.parse(@@infile) reader = CSV.parse(@infile)
assert_instance_of(CSV::IOReader, reader) assert_instance_of(CSV::IOReader, reader)
reader.close reader.close
reader = CSV.parse(@@infile) reader = CSV.parse(@infile)
assert_instance_of(CSV::IOReader, reader) assert_instance_of(CSV::IOReader, reader)
reader.close reader.close
reader = CSV.parse(@@infile, ?;) reader = CSV.parse(@infile, ?;)
assert_instance_of(CSV::IOReader, reader) assert_instance_of(CSV::IOReader, reader)
reader.close reader.close
CSV.parse(@@infile) do |row| CSV.parse(@infile) do |row|
assert_instance_of(CSV::Row, row) assert_instance_of(CSV::Row, row)
break break
end end
CSV.parse(@@infiletsv, ?\t) do |row| CSV.parse(@infiletsv, ?\t) do |row|
assert_instance_of(CSV::Row, row) assert_instance_of(CSV::Row, row)
break break
end end
@ -618,72 +624,62 @@ public
CSV.parse("NoSuchFileOrDirectory", ?;) CSV.parse("NoSuchFileOrDirectory", ?;)
end end
CSV.parse(@@emptyfile) do |row| CSV.parse(@emptyfile) do |row|
assert_fail("Must not reach here") assert_fail("Must not reach here")
end end
end end
def test_s_open_writer def test_s_open_writer
writer = CSV.open(@@outfile, "w") writer = CSV.open(@outfile, "w")
assert_instance_of(CSV::BasicWriter, writer) assert_instance_of(CSV::BasicWriter, writer)
writer.close writer.close
writer = CSV.open(@@outfile, "wb") writer = CSV.open(@outfile, "wb")
assert_instance_of(CSV::BasicWriter, writer) assert_instance_of(CSV::BasicWriter, writer)
writer.close writer.close
writer = CSV.open(@@outfile, "wb", ?;) writer = CSV.open(@outfile, "wb", ?;)
assert_instance_of(CSV::BasicWriter, writer) assert_instance_of(CSV::BasicWriter, writer)
writer.close writer.close
CSV.open(@@outfile, "w") do |writer| CSV.open(@outfile, "w") do |writer|
assert_instance_of(CSV::BasicWriter, writer) assert_instance_of(CSV::BasicWriter, writer)
end end
CSV.open(@@outfile, "w", ?;) do |writer| CSV.open(@outfile, "w", ?;) do |writer|
assert_instance_of(CSV::BasicWriter, writer) assert_instance_of(CSV::BasicWriter, writer)
end end
begin begin
CSV.open(@@tmpdir, "w") CSV.open(@tmpdir, "w")
assert(false) assert(false)
rescue Exception => ex rescue Exception => ex
assert(ex.is_a?(Errno::EEXIST) || ex.is_a?(Errno::EISDIR)) assert(ex.is_a?(Errno::EEXIST) || ex.is_a?(Errno::EISDIR) || ex.is_a?(Errno::EACCES))
end
# Empty file.
CSV.open(@@emptyfile, "w") do |writer|
# Create empty file.
end end
end end
def test_s_generate def test_s_generate
writer = CSV.generate(@@outfile) writer = CSV.generate(@outfile)
assert_instance_of(CSV::BasicWriter, writer) assert_instance_of(CSV::BasicWriter, writer)
writer.close writer.close
writer = CSV.generate(@@outfile, ?;) writer = CSV.generate(@outfile, ?;)
assert_instance_of(CSV::BasicWriter, writer) assert_instance_of(CSV::BasicWriter, writer)
writer.close writer.close
CSV.generate(@@outfile) do |writer| CSV.generate(@outfile) do |writer|
assert_instance_of(CSV::BasicWriter, writer) assert_instance_of(CSV::BasicWriter, writer)
end end
CSV.generate(@@outfile, ?;) do |writer| CSV.generate(@outfile, ?;) do |writer|
assert_instance_of(CSV::BasicWriter, writer) assert_instance_of(CSV::BasicWriter, writer)
end end
begin begin
CSV.generate(@@tmpdir) CSV.generate(@tmpdir)
assert(false) assert(false)
rescue Exception => ex rescue Exception => ex
assert(ex.is_a?(Errno::EEXIST) || ex.is_a?(Errno::EISDIR)) assert(ex.is_a?(Errno::EEXIST) || ex.is_a?(Errno::EISDIR) || ex.is_a?(Errno::EACCES))
end
# Empty file.
CSV.generate(@@emptyfile) do |writer|
# Create empty file.
end end
end end
@ -1091,13 +1087,13 @@ public
def test_utf8 def test_utf8
rows = [] rows = []
CSV.open("bom.csv", "r") do |row| CSV.open(@bomfile, "r") do |row|
rows << row.to_a rows << row.to_a
end end
assert_equal([["foo"], ["bar"]], rows) assert_equal([["foo"], ["bar"]], rows)
rows = [] rows = []
CSV::Reader.parse(File.open("bom.csv").read) do |row| CSV::Reader.parse(File.open(@bomfile).read) do |row|
rows << row.to_a rows << row.to_a
end end
assert_equal([["foo"], ["bar"]], rows) assert_equal([["foo"], ["bar"]], rows)
@ -1123,14 +1119,14 @@ public
def setupInputStream(size, bufSize = nil) def setupInputStream(size, bufSize = nil)
setBufSize(bufSize) if bufSize setBufSize(bufSize) if bufSize
m = ((size / InputStreamPatternSize) + 1).to_i m = ((size / InputStreamPatternSize) + 1).to_i
File.open(@@outfile, "wb") do |f| File.open(@outfile, "wb") do |f|
f << (InputStreamPattern * m)[0, size] f << (InputStreamPattern * m)[0, size]
end end
CSV::IOBuf.new(File.open(@@outfile, "rb")) CSV::IOBuf.new(File.open(@outfile, "rb"))
end end
def setBufSize(size) def setBufSize(size)
# Ruby kindly warns me but... CSV::StreamBuf.module_eval('remove_const("BufSize")')
CSV::StreamBuf.module_eval("BufSize = #{ size }") CSV::StreamBuf.module_eval("BufSize = #{ size }")
end end
@ -1427,11 +1423,11 @@ public
end end
def test_IOBuf_close def test_IOBuf_close
f = File.open(@@outfile, "wb") f = File.open(@outfile, "wb")
f << "tst" f << "tst"
f.close f.close
f = File.open(@@outfile, "rb") f = File.open(@outfile, "rb")
iobuf = CSV::IOBuf.new(f) iobuf = CSV::IOBuf.new(f)
iobuf.close iobuf.close
assert(true) # iobuf.close does not raise any exception. assert(true) # iobuf.close does not raise any exception.

View file