aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases
diff options
context:
space:
mode:
authorJosh Susser <josh@hasmanythrough.com>2010-03-20 18:26:12 -0700
committerJosh Susser <josh@hasmanythrough.com>2010-12-01 10:57:38 -0800
commit7139aa878ceea8dd17a60955cd4d07f5f68980d9 (patch)
tree6246048e1a611d770a3f5b5b0208c6597cbd646a /activerecord/test/cases
parent4e4e9ad48a222ac94a904c62ae684c609bd8e177 (diff)
downloadrails-7139aa878ceea8dd17a60955cd4d07f5f68980d9.tar.gz
rails-7139aa878ceea8dd17a60955cd4d07f5f68980d9.tar.bz2
rails-7139aa878ceea8dd17a60955cd4d07f5f68980d9.zip
name in schema_migrations, migrations in schema dump
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r--activerecord/test/cases/ar_schema_test.rb23
-rw-r--r--activerecord/test/cases/migration_test.rb20
-rw-r--r--activerecord/test/cases/schema_dumper_test.rb15
3 files changed, 50 insertions, 8 deletions
diff --git a/activerecord/test/cases/ar_schema_test.rb b/activerecord/test/cases/ar_schema_test.rb
index 588adc38e3..e7f3907ff5 100644
--- a/activerecord/test/cases/ar_schema_test.rb
+++ b/activerecord/test/cases/ar_schema_test.rb
@@ -39,4 +39,27 @@ if ActiveRecord::Base.connection.supports_migrations?
end
end
+ class ActiveRecordSchemaMigrationsTest < ActiveRecordSchemaTest
+ def setup
+ super
+ @sm_table = ActiveRecord::Migrator.schema_migrations_table_name
+ @connection.execute "DELETE FROM #{@connection.quote_table_name(@sm_table)}"
+ end
+
+ def test_migration_adds_row_to_migrations_table
+ ActiveRecord::Schema.migration("123001")
+ ActiveRecord::Schema.migration("123002", "add_magic_power_to_unicorns")
+ rows = @connection.select_all("SELECT * FROM #{@connection.quote_table_name(@sm_table)}")
+ assert_equal 2, rows.length
+
+ assert_equal "123001", rows[0]["version"]
+ assert_equal "", rows[0]["name"]
+ assert_match /^2\d\d\d-/, rows[0]["migrated_at"]
+
+ assert_equal "123002", rows[1]["version"]
+ assert_equal "add_magic_power_to_unicorns", rows[1]["name"]
+ assert_match /^2\d\d\d-/, rows[1]["migrated_at"]
+ end
+ end
+
end
diff --git a/activerecord/test/cases/migration_test.rb b/activerecord/test/cases/migration_test.rb
index e76097d42d..497391e713 100644
--- a/activerecord/test/cases/migration_test.rb
+++ b/activerecord/test/cases/migration_test.rb
@@ -50,10 +50,10 @@ if ActiveRecord::Base.connection.supports_migrations?
@conn.initialize_schema_migrations_table
columns = @conn.columns(ActiveRecord::Migrator.schema_migrations_table_name).collect(&:name)
- %w[version migrated_at].each { |col| assert columns.include?(col) }
+ %w[version name migrated_at].each { |col| assert columns.include?(col) }
end
- def test_add_migrated_at_to_exisiting_schema_migrations
+ def test_add_name_and_migrated_at_to_exisiting_schema_migrations
sm_table = ActiveRecord::Migrator.schema_migrations_table_name
@conn.create_table(sm_table, :id => false) do |schema_migrations_table|
schema_migrations_table.column :version, :string, :null => false
@@ -63,9 +63,9 @@ if ActiveRecord::Base.connection.supports_migrations?
@conn.initialize_schema_migrations_table
- m_ats = @conn.select_values("SELECT migrated_at FROM #{@conn.quote_table_name(sm_table)}")
- assert_equal 2, m_ats.length
- assert_equal 2, m_ats.compact.length
+ rows = @conn.select_all("SELECT * FROM #{@conn.quote_table_name(sm_table)}")
+ assert rows[0].has_key?("name")
+ assert rows[0].has_key?("migrated_at")
end
end
@@ -1499,15 +1499,19 @@ if ActiveRecord::Base.connection.supports_migrations?
ActiveRecord::Base.table_name_suffix = ""
end
- def test_migration_row_includes_timestamp
+ def test_migration_row_includes_name_and_timestamp
conn = ActiveRecord::Base.connection
sm_table = ActiveRecord::Migrator.schema_migrations_table_name
ActiveRecord::Migrator.migrate(MIGRATIONS_ROOT + "/valid")
- conn.select_all("SELECT * FROM #{conn.quote_table_name(sm_table)}").each do |row|
- assert_match /^2\d\d\d-/, row["migrated_at"], "missing migrated_at"
+ rows = conn.select_all("SELECT * FROM #{conn.quote_table_name(sm_table)}")
+ rows.each do |row|
+ assert_match( /^2\d\d\d-/, row["migrated_at"], "missing migrated_at" )
end
+ assert_equal "people_have_last_names", rows[0]["name"]
+ assert_equal "we_need_reminders", rows[1]["name"]
+ assert_equal "innocent_jointable", rows[2]["name"]
end
def test_proper_table_name
diff --git a/activerecord/test/cases/schema_dumper_test.rb b/activerecord/test/cases/schema_dumper_test.rb
index 9b2c7c00df..fdcf1b5cd4 100644
--- a/activerecord/test/cases/schema_dumper_test.rb
+++ b/activerecord/test/cases/schema_dumper_test.rb
@@ -17,6 +17,21 @@ class SchemaDumperTest < ActiveRecord::TestCase
assert_no_match %r{create_table "schema_migrations"}, output
end
+ def test_schema_dump_includes_migrations
+ conn = ActiveRecord::Base.connection
+ sm_table = ActiveRecord::Migrator.schema_migrations_table_name
+ conn.execute "DELETE FROM #{conn.quote_table_name(sm_table)}"
+ conn.remove_column "people", "last_name" rescue nil
+ conn.drop_table "reminders" rescue nil
+ conn.drop_table "people_reminders" rescue nil
+ ActiveRecord::Migrator.migrate(MIGRATIONS_ROOT + "/valid")
+
+ output = standard_dump
+ assert_match %r{migration "1", "people_have_last_names"}, output
+ assert_match %r{migration "2", "we_need_reminders"}, output
+ assert_match %r{migration "3", "innocent_jointable"}, output
+ end
+
def test_schema_dump_excludes_sqlite_sequence
output = standard_dump
assert_no_match %r{create_table "sqlite_sequence"}, output