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:
parent
0b9b7d630a
commit
11d439a7bd
3 changed files with 77 additions and 76 deletions
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
Loading…
Add table
Reference in a new issue