mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Add a test case for save(validate:false) with invalid foreign key.
It is supposed to raise ActiveRecord::InvalidForeignKey when the database has a fk constraint.
This commit is contained in:
parent
8a081db357
commit
ff8f9f09f4
1 changed files with 15 additions and 1 deletions
|
@ -146,7 +146,7 @@ module ActiveRecord
|
|||
end
|
||||
|
||||
def test_foreign_key_violations_are_translated_to_specific_exception
|
||||
unless @connection.adapter_name == 'SQLite'
|
||||
unless current_adapter?(:SQLite3Adapter)
|
||||
assert_raises(ActiveRecord::InvalidForeignKey) do
|
||||
# Oracle adapter uses prefetched primary key values from sequence and passes them to connection adapter insert method
|
||||
if @connection.prefetch_primary_key?
|
||||
|
@ -159,6 +159,20 @@ module ActiveRecord
|
|||
end
|
||||
end
|
||||
|
||||
def test_foreign_key_violations_are_translated_to_specific_exception_with_validate_false
|
||||
unless current_adapter?(:SQLite3Adapter)
|
||||
klass_has_fk = Class.new(ActiveRecord::Base) do
|
||||
self.table_name = 'fk_test_has_fk'
|
||||
end
|
||||
|
||||
assert_raises(ActiveRecord::InvalidForeignKey) do
|
||||
has_fk = klass_has_fk.new
|
||||
has_fk.fk_id = 1231231231
|
||||
has_fk.save(validate: false)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def test_disable_referential_integrity
|
||||
assert_nothing_raised do
|
||||
@connection.disable_referential_integrity do
|
||||
|
|
Loading…
Reference in a new issue