diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2018-01-26 05:47:35 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2018-01-26 05:50:05 +0900 |
commit | 8c42d1b6e537a50ae085a8669e604fca1729d56b (patch) | |
tree | 2130886860a6ff9d37c81c2a7bb8f6109b95328c /activerecord | |
parent | a4df58a828e84fe3356c2caf1cd5c4c2de0e6609 (diff) | |
download | rails-8c42d1b6e537a50ae085a8669e604fca1729d56b.tar.gz rails-8c42d1b6e537a50ae085a8669e604fca1729d56b.tar.bz2 rails-8c42d1b6e537a50ae085a8669e604fca1729d56b.zip |
Add test case for deprecated `insert_fixtures`
Since #31422, `insert_fixtures` is deprecated.
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb | 8 | ||||
-rw-r--r-- | activerecord/test/cases/fixtures_test.rb | 18 |
2 files changed, 21 insertions, 5 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb index c66cada07a..a958600446 100644 --- a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb @@ -367,9 +367,11 @@ module ActiveRecord end def insert_fixtures(rows, table_name) - rows.each do |row| - insert_fixture(row, table_name) - end + ActiveSupport::Deprecation.warn(<<-MSG.squish) + `insert_fixtures` is deprecated and will be removed in the next version of Rails. + Consider using `insert_fixtures_set` for performance improvement. + MSG + insert_fixtures_set(table_name => rows) end def insert_fixtures_set(fixture_set, tables_to_delete = []) diff --git a/activerecord/test/cases/fixtures_test.rb b/activerecord/test/cases/fixtures_test.rb index d6b22e0a79..baa5e5df34 100644 --- a/activerecord/test/cases/fixtures_test.rb +++ b/activerecord/test/cases/fixtures_test.rb @@ -211,16 +211,30 @@ class FixturesTest < ActiveRecord::TestCase subscription = ActiveSupport::Notifications.subscribe("sql.active_record", subscriber) assert_nothing_raised do - ActiveRecord::Base.connection.insert_fixtures(fixtures, "aircraft") + ActiveRecord::Base.connection.insert_fixtures_set("aircraft" => fixtures) end - expected_sql = "INSERT INTO `aircraft` (`id`, `name`, `wheels_count`) VALUES (DEFAULT, 'first', 2), (DEFAULT, 'second', 3)" + expected_sql = "INSERT INTO `aircraft` (`id`, `name`, `wheels_count`) VALUES (DEFAULT, 'first', 2), (DEFAULT, 'second', 3);\n" assert_equal expected_sql, subscriber.events.first ensure ActiveSupport::Notifications.unsubscribe(subscription) end end + def test_deprecated_insert_fixtures + fixtures = [ + { "name" => "first", "wheels_count" => 2 }, + { "name" => "second", "wheels_count" => 3 } + ] + conn = ActiveRecord::Base.connection + conn.delete("DELETE FROM aircraft") + assert_deprecated do + conn.insert_fixtures(fixtures, "aircraft") + end + result = conn.select_all("SELECT name, wheels_count FROM aircraft ORDER BY id") + assert_equal fixtures, result.to_a + end + def test_broken_yaml_exception badyaml = Tempfile.new ["foo", ".yml"] badyaml.write "a: : " |