mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
[ruby/csv] Add invalid: :replace
for CSV.open
(#130)
This PR adds `invalid: :replace` for `CSV.open`. It is a PR similar to #129.
5bf687341c
This commit is contained in:
parent
cee10c1b70
commit
08e70126ae
Notes:
git
2020-07-20 03:35:40 +09:00
2 changed files with 35 additions and 2 deletions
|
@ -135,6 +135,36 @@ class TestCSVInterfaceRead < Test::Unit::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
def test_open_with_invalid_nil
|
||||
CSV.open(@input.path, "w", encoding: Encoding::CP932, invalid: nil) do |rows|
|
||||
error = assert_raise(Encoding::InvalidByteSequenceError) do
|
||||
rows << ["\x82\xa0"]
|
||||
end
|
||||
assert_equal('"\x82" on UTF-8',
|
||||
error.message)
|
||||
end
|
||||
end
|
||||
|
||||
def test_open_with_invalid_replace
|
||||
CSV.open(@input.path, "w", encoding: Encoding::CP932, invalid: :replace) do |rows|
|
||||
rows << ["\x82\xa0".force_encoding(Encoding::UTF_8)]
|
||||
end
|
||||
CSV.open(@input.path, encoding: Encoding::CP932) do |csv|
|
||||
assert_equal([["??"]],
|
||||
csv.to_a)
|
||||
end
|
||||
end
|
||||
|
||||
def test_open_with_invalid_replace_and_replace_string
|
||||
CSV.open(@input.path, "w", encoding: Encoding::CP932, invalid: :replace, replace: "X") do |rows|
|
||||
rows << ["\x82\xa0".force_encoding(Encoding::UTF_8)]
|
||||
end
|
||||
CSV.open(@input.path, encoding: Encoding::CP932) do |csv|
|
||||
assert_equal([["XX"]],
|
||||
csv.to_a)
|
||||
end
|
||||
end
|
||||
|
||||
def test_open_with_undef_replace
|
||||
# U+00B7 Middle Dot
|
||||
CSV.open(@input.path, "w", encoding: Encoding::CP932, undef: :replace) do |rows|
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue