提交 920070e4 编写于 作者: S Stephen Celis

Don't type-cast unknown types to YAML.

上级 30b0e584
......@@ -71,7 +71,7 @@ def type_cast(value, column)
when Date, Time then quoted_date(value)
when Symbol then value.to_s
else
YAML.dump(value)
raise TypeError, "can't cast #{value.class} to #{column.type}"
end
end
......
......@@ -70,9 +70,9 @@ def test_type_cast_bigdecimal
assert_equal bd.to_f, @conn.type_cast(bd, nil)
end
def test_type_cast_unknown
def test_type_cast_unknown_should_raise_error
obj = Class.new.new
assert_equal YAML.dump(obj), @conn.type_cast(obj, nil)
assert_raise(TypeError) { @conn.type_cast(obj, nil) }
end
def test_quoted_id
......
......@@ -992,10 +992,9 @@ def test_dup
assert_equal "b", duped_topic.title
# test if the attribute values have been duped
topic.title = {"a" => "b"}
duped_topic = topic.dup
duped_topic.title["a"] = "c"
assert_equal "b", topic.title["a"]
duped_topic.title.replace "c"
assert_equal "a", topic.title
# test if attributes set as part of after_initialize are duped correctly
assert_equal topic.author_email_address, duped_topic.author_email_address
......@@ -1006,8 +1005,7 @@ def test_dup
assert_not_equal duped_topic.id, topic.id
duped_topic.reload
# FIXME: I think this is poor behavior, and will fix it with #5686
assert_equal({'a' => 'c'}.to_yaml, duped_topic.title)
assert_equal("c", duped_topic.title)
end
def test_dup_with_aggregate_of_same_name_as_attribute
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册