migration_test_helper 1.3.2 → 1.3.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest.txt +39 -0
- data/README +4 -1
- data/Rakefile +7 -9
- data/generators/full_migration_test/USAGE +30 -0
- data/generators/full_migration_test/full_migration_test_generator.rb +10 -0
- data/generators/full_migration_test/templates/full_migration_test.rb +89 -0
- data/generators/migration_test/migration_test_generator.rb +33 -0
- data/generators/migration_test/templates/migration_test.rb +25 -0
- data/lib/migration_test_helper.rb +11 -3
- data/test/db/schema.rb +1 -0
- data/test/foundry_only_helper.rb +0 -2
- data/test/migration_test_generator_test.rb +15 -13
- data/test/migration_test_helper_test.rb +42 -5
- metadata +79 -62
data/Manifest.txt
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
.
|
2
|
+
./generators
|
3
|
+
./generators/full_migration_test
|
4
|
+
./generators/full_migration_test/full_migration_test_generator.rb
|
5
|
+
./generators/full_migration_test/templates
|
6
|
+
./generators/full_migration_test/templates/full_migration_test.rb
|
7
|
+
./generators/full_migration_test/USAGE
|
8
|
+
./generators/migration_test
|
9
|
+
./generators/migration_test/migration_test_generator.rb
|
10
|
+
./generators/migration_test/templates
|
11
|
+
./generators/migration_test/templates/migration_test.rb
|
12
|
+
./init.rb
|
13
|
+
./install.rb
|
14
|
+
./lib
|
15
|
+
./lib/migration_test_helper.rb
|
16
|
+
./LICENSE
|
17
|
+
./Manifest.txt
|
18
|
+
./Rakefile
|
19
|
+
./README
|
20
|
+
./tasks
|
21
|
+
./tasks/migration_test_helper_tasks.rake
|
22
|
+
./test
|
23
|
+
./test/config
|
24
|
+
./test/config/database.yml
|
25
|
+
./test/db
|
26
|
+
./test/db/migrate_bad
|
27
|
+
./test/db/migrate_bad/001_create_top_dogs.rb
|
28
|
+
./test/db/migrate_good
|
29
|
+
./test/db/migrate_good/001_create_top_dogs.rb
|
30
|
+
./test/db/migrate_good/002_create_bottom_dogs.rb
|
31
|
+
./test/db/migrate_good/003_create_cats.rb
|
32
|
+
./test/db/schema.rb
|
33
|
+
./test/foundry_only_helper.rb
|
34
|
+
./test/full_migration_test_generator_test.rb
|
35
|
+
./test/helper.rb
|
36
|
+
./test/log
|
37
|
+
./test/migration_test_generator_test.rb
|
38
|
+
./test/migration_test_helper_test.rb
|
39
|
+
./uninstall.rb
|
data/README
CHANGED
@@ -41,11 +41,12 @@ If you're using it outside of a Rails environment (for whatever reason) include
|
|
41
41
|
t.column :book_id, :integer
|
42
42
|
t.column :body, :text
|
43
43
|
t.column :rating, :integer, :default => 0
|
44
|
+
t.index :book_id, :name => 'index_book_id_on_reviews'
|
44
45
|
end
|
45
46
|
end
|
46
47
|
end
|
47
48
|
|
48
|
-
This would verify there are only two tables defined in the test database: _books_ and _reviews_ (schema_info is ignored). It will also verify that the _book_ table has the three columns, _id_, _title_ and _author_, each with their respective types.
|
49
|
+
This would verify there are only two tables defined in the test database: _books_ and _reviews_ (schema_info is ignored). It will also verify that the _book_ table has the three columns, _id_, _title_ and _author_, each with their respective types. Indexes are verified too.
|
49
50
|
|
50
51
|
|
51
52
|
*assert_table*: verify a table is found exactly as specified:
|
@@ -54,6 +55,7 @@ This would verify there are only two tables defined in the test database: _books
|
|
54
55
|
t.column :id, :integer
|
55
56
|
t.column :title, :string, :limit => 5
|
56
57
|
t.column :author, :string
|
58
|
+
t.index :author, :name => 'index_author_on_books'
|
57
59
|
end
|
58
60
|
|
59
61
|
|
@@ -101,6 +103,7 @@ By combining the two helpers you can write a test that shows you can run all you
|
|
101
103
|
t.column :book_id, :integer
|
102
104
|
t.column :body, :text
|
103
105
|
t.column :rating, :integer
|
106
|
+
t.index :book_id, :name => 'index_book_id_on_reviews'
|
104
107
|
end
|
105
108
|
end
|
106
109
|
end
|
data/Rakefile
CHANGED
@@ -16,7 +16,7 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
|
|
16
16
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
17
17
|
end
|
18
18
|
|
19
|
-
GEM_VERSION = '1.3.
|
19
|
+
GEM_VERSION = '1.3.3'
|
20
20
|
|
21
21
|
Hoe.new('migration_test_helper',GEM_VERSION) do |p|
|
22
22
|
p.author = "Micah Alles"
|
@@ -30,8 +30,6 @@ current state of the schema and executing migrations against the
|
|
30
30
|
test database.
|
31
31
|
EOS
|
32
32
|
|
33
|
-
p.gem_files = FileList["{test,lib,tasks}/**/*"] + %w|LICENSE README Rakefile init.rb install.rb uninstall.rb|
|
34
|
-
|
35
33
|
p.changes = <<-EOS
|
36
34
|
* fixed bug where test:migration was calling itself, thanks Patrick ;)
|
37
35
|
EOS
|
@@ -52,13 +50,13 @@ task :plugin_release do
|
|
52
50
|
status = `svn status`
|
53
51
|
raise "Please clean up before releasing.\n#{status}" unless status == ""
|
54
52
|
|
55
|
-
unless `svn ls svn+ssh://
|
56
|
-
sh "svn del svn+ssh://
|
53
|
+
unless `svn ls svn+ssh://swieton@rubyforge.org/var/svn/migrationtest/tags/rel-#{GEM_VERSION} -m`.strip.empty?
|
54
|
+
sh "svn del svn+ssh://swieton@rubyforge.org/var/svn/migrationtest/tags/rel-#{GEM_VERSION} -m 'Preparing to update stable release tag'"
|
57
55
|
end
|
58
|
-
sh "svn cp . svn+ssh://
|
59
|
-
unless `svn ls svn+ssh://
|
60
|
-
sh "svn del svn+ssh://
|
56
|
+
sh "svn cp . svn+ssh://swieton@rubyforge.org/var/svn/migrationtest/tags/rel-#{GEM_VERSION} -m 'Releasing version #{GEM_VERSION}'"
|
57
|
+
unless `svn ls svn+ssh://swieton@rubyforge.org/var/svn/migrationtest/tags/migration_test_helper`.strip.empty?
|
58
|
+
sh "svn del svn+ssh://swieton@rubyforge.org/var/svn/migrationtest/tags/migration_test_helper -m 'Preparing to update stable release tag'"
|
61
59
|
end
|
62
|
-
sh "svn cp . svn+ssh://
|
60
|
+
sh "svn cp . svn+ssh://swieton@rubyforge.org/var/svn/migrationtest/tags/migration_test_helper -m 'Updating stable tag to version #{GEM_VERSION}'"
|
63
61
|
end
|
64
62
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
Description:
|
2
|
+
The controller generator creates stubs for a new controller and its views.
|
3
|
+
|
4
|
+
The generator takes a controller name and a list of views as arguments.
|
5
|
+
The controller name may be given in CamelCase or under_score and should
|
6
|
+
not be suffixed with 'Controller'. To create a controller within a
|
7
|
+
module, specify the controller name as 'module/controller'.
|
8
|
+
|
9
|
+
The generator creates a controller class in app/controllers with view
|
10
|
+
templates in app/views/controller_name, a helper class in app/helpers,
|
11
|
+
and a functional test suite in test/functional.
|
12
|
+
|
13
|
+
Example:
|
14
|
+
./script/generate controller CreditCard open debit credit close
|
15
|
+
|
16
|
+
Credit card controller with URLs like /credit_card/debit.
|
17
|
+
Controller: app/controllers/credit_card_controller.rb
|
18
|
+
Views: app/views/credit_card/debit.rhtml [...]
|
19
|
+
Helper: app/helpers/credit_card_helper.rb
|
20
|
+
Test: test/functional/credit_card_controller_test.rb
|
21
|
+
|
22
|
+
Modules Example:
|
23
|
+
./script/generate controller 'admin/credit_card' suspend late_fee
|
24
|
+
|
25
|
+
Credit card admin controller with URLs /admin/credit_card/suspend.
|
26
|
+
Controller: app/controllers/admin/credit_card_controller.rb
|
27
|
+
Views: app/views/admin/credit_card/debit.rhtml [...]
|
28
|
+
Helper: app/helpers/admin/credit_card_helper.rb
|
29
|
+
Test: test/functional/admin/credit_card_controller_test.rb
|
30
|
+
|
@@ -0,0 +1,89 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
|
2
|
+
|
3
|
+
#
|
4
|
+
# This excercises the full set of migrations for your Rails app.
|
5
|
+
# It proves:
|
6
|
+
# - After full migration, the database is in the expected state, including:
|
7
|
+
# - All table structure
|
8
|
+
# - Default data (if any)
|
9
|
+
# - Full downward (version 0) migration functions correctly.
|
10
|
+
#
|
11
|
+
# YOU NEED TO:
|
12
|
+
# - Update "see_full_schema"
|
13
|
+
# - Update "see_data"
|
14
|
+
#
|
15
|
+
class FullMigrationTest < ActionController::IntegrationTest
|
16
|
+
|
17
|
+
#
|
18
|
+
# Transactional fixtures can, on occasion, cause migration tests to hang.
|
19
|
+
# Applying this setting here will turn transactional fixtures off for THIS
|
20
|
+
# SUITE ONLY
|
21
|
+
#
|
22
|
+
# self.use_transactional_fixtures = false
|
23
|
+
|
24
|
+
def conn
|
25
|
+
ActiveRecord::Base.connection
|
26
|
+
end
|
27
|
+
|
28
|
+
def see_empty_schema
|
29
|
+
assert_schema do |s|
|
30
|
+
# is nothing
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
#
|
35
|
+
# Structure and Content assertions
|
36
|
+
#
|
37
|
+
|
38
|
+
# Fully assert db structure after full migration
|
39
|
+
def see_full_schema
|
40
|
+
# TODO: add assertions here to verify your schema was built
|
41
|
+
flunk "implement me"
|
42
|
+
|
43
|
+
#
|
44
|
+
# Something like this can be used to see the entire schema
|
45
|
+
# is as expeted.
|
46
|
+
#
|
47
|
+
# assert_schema do |s|
|
48
|
+
# s.table :cat_tails do |t|
|
49
|
+
# t.column :id, :integer
|
50
|
+
# t.column :name, :string
|
51
|
+
# end
|
52
|
+
#
|
53
|
+
# s.table :dogs do |t|
|
54
|
+
# t.column :id, :integer
|
55
|
+
# t.column :name, :string
|
56
|
+
# end
|
57
|
+
# end
|
58
|
+
|
59
|
+
#
|
60
|
+
# Alternatively individual tables can be checked.
|
61
|
+
#
|
62
|
+
# assert_table :cats_tails do |s|
|
63
|
+
# t.column :id, :integer
|
64
|
+
# t.column :name, :string
|
65
|
+
# end
|
66
|
+
end
|
67
|
+
|
68
|
+
# Make sure data you expect your migrations to load are in there:
|
69
|
+
def see_default_data
|
70
|
+
# TODO: add assertions here to verify any default data was loaded
|
71
|
+
end
|
72
|
+
|
73
|
+
#
|
74
|
+
# TESTS
|
75
|
+
#
|
76
|
+
|
77
|
+
def test_full_migration
|
78
|
+
drop_all_tables
|
79
|
+
|
80
|
+
see_empty_schema
|
81
|
+
|
82
|
+
migrate
|
83
|
+
|
84
|
+
see_full_schema
|
85
|
+
|
86
|
+
see_default_data
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
class MigrationTestGenerator < Rails::Generator::NamedBase
|
2
|
+
def manifest
|
3
|
+
schema_version = class_name.to_i
|
4
|
+
raise "Invalid schema version '#{class_name}'" unless schema_version > 0
|
5
|
+
|
6
|
+
schema_version_string = schema_version.to_s.rjust(3,'0')
|
7
|
+
|
8
|
+
migration = Dir["db/migrate/#{schema_version_string}*.rb"].first
|
9
|
+
raise "No migration found for schema version #{schema_version_string}" unless migration
|
10
|
+
|
11
|
+
migration_name = File.basename(migration,'.rb').sub(/^\d+_/,'')
|
12
|
+
test_class_name = migration_name.camelize + "Test"
|
13
|
+
test_file = "test/migration/#{schema_version_string}_#{migration_name}_test.rb"
|
14
|
+
|
15
|
+
record do |m|
|
16
|
+
m.directory 'test/migration'
|
17
|
+
m.template 'migration_test.rb', test_file, :assigns => {
|
18
|
+
:test_class_name => test_class_name,
|
19
|
+
:migration_name => migration_name,
|
20
|
+
:schema_version => schema_version,
|
21
|
+
:previous_schema_version => previous_schema_version(schema_version_string)
|
22
|
+
}
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def previous_schema_version(current_version_string)
|
27
|
+
versions = Dir["db/migrate/*.rb"].map do |migration_file|
|
28
|
+
migration_file.match(/db\/migrate\/(\d+)_.*\.rb/)[1]
|
29
|
+
end.sort
|
30
|
+
prev_index = versions.index(current_version_string) - 1
|
31
|
+
prev_index < 0 ? -1 : versions[prev_index].to_i
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
|
2
|
+
|
3
|
+
class <%= test_class_name %> < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def teardown
|
6
|
+
migrate
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_migration_should_<%= migration_name %>
|
10
|
+
drop_all_tables
|
11
|
+
|
12
|
+
migrate :version => <%= previous_schema_version %>
|
13
|
+
|
14
|
+
flunk "TODO: setup test data"
|
15
|
+
|
16
|
+
migrate :version => <%= schema_version %>
|
17
|
+
|
18
|
+
flunk "TODO: examine results"
|
19
|
+
|
20
|
+
migrate :version => <%= previous_schema_version %>
|
21
|
+
|
22
|
+
flunk "TODO: examine results"
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -114,7 +114,7 @@ module MigrationTestHelper
|
|
114
114
|
end
|
115
115
|
|
116
116
|
def verify #:nodoc:
|
117
|
-
actual_tables = conn.tables.reject {|t| t == 'schema_info' }
|
117
|
+
actual_tables = conn.tables.reject {|t| t == 'schema_info' || t == 'schema_migrations' }
|
118
118
|
expected_tables = @tables.map {|t| t.name }
|
119
119
|
assert_equal expected_tables.sort, actual_tables.sort, 'wrong tables in schema'
|
120
120
|
end
|
@@ -128,6 +128,7 @@ module MigrationTestHelper
|
|
128
128
|
def initialize(name) #:nodoc:
|
129
129
|
@name = name.to_s
|
130
130
|
@columns = []
|
131
|
+
@indexes = []
|
131
132
|
assert conn.tables.include?(@name), "table <#{@name}> not found in schema"
|
132
133
|
end
|
133
134
|
|
@@ -138,14 +139,21 @@ module MigrationTestHelper
|
|
138
139
|
assert_not_nil col, "column <#{colname}> not found in table <#{self.name}>"
|
139
140
|
assert_equal type, col.type, "wrong type for column <#{colname}> in table <#{name}>"
|
140
141
|
options.each do |k,v|
|
141
|
-
k = k.to_sym
|
142
|
-
assert_equal v,
|
142
|
+
k = k.to_sym; actual = col.send(k); actual = actual.is_a?(String) ? actual.sub(/'$/,'').sub(/^'/,'') : actual
|
143
|
+
assert_equal v, actual, "column <#{colname}> in table <#{name}> has wrong :#{k}"
|
143
144
|
end
|
144
145
|
end
|
145
146
|
|
147
|
+
def index(column_name, options = {})
|
148
|
+
@indexes << "name <#{options[:name]}> columns <#{Array(column_name).join(",")}> unique <#{options[:unique] == true}>"
|
149
|
+
end
|
150
|
+
|
146
151
|
def verify #:nodoc:
|
147
152
|
actual_columns = conn.columns(name).map {|c| c.name }
|
148
153
|
assert_equal @columns.sort, actual_columns.sort, "wrong columns for table: <#{name}>"
|
154
|
+
|
155
|
+
actual_indexes = conn.indexes(@name).collect { |i| "name <#{i.name}> columns <#{i.columns.join(",")}> unique <#{i.unique}>" }
|
156
|
+
assert_equal @indexes.sort, actual_indexes.sort, "wrong indexes for table: <#{name}>"
|
149
157
|
end
|
150
158
|
end
|
151
159
|
end
|
data/test/db/schema.rb
CHANGED
data/test/foundry_only_helper.rb
CHANGED
@@ -20,15 +20,17 @@ class MigrationTestGeneratorTest < Test::Unit::TestCase
|
|
20
20
|
# HELPERS
|
21
21
|
#
|
22
22
|
|
23
|
-
def generate_migration(
|
23
|
+
def generate_migration(name)
|
24
24
|
run_in_rails_root "script/generate migration #{name}"
|
25
|
-
|
25
|
+
@output =~ /create db\/migrate\/(\d+)_.*\.rb/
|
26
|
+
migration = $1
|
27
|
+
migration_file = "db/migrate/#{migration}_#{name}.rb"
|
26
28
|
assert File.exists?(migration_file), "Migration not there: #{migration_file}"
|
29
|
+
migration
|
27
30
|
end
|
28
31
|
|
29
32
|
def generate_migration_test(version)
|
30
33
|
run_in_rails_root "script/generate migration_test #{version}"
|
31
|
-
|
32
34
|
end
|
33
35
|
|
34
36
|
def rm_migrations
|
@@ -40,11 +42,11 @@ class MigrationTestGeneratorTest < Test::Unit::TestCase
|
|
40
42
|
#
|
41
43
|
|
42
44
|
in_foundry_should "generate a migration test for schema 1" do
|
43
|
-
generate_migration '
|
45
|
+
migration = generate_migration 'create_the_dogs_table'
|
44
46
|
|
45
|
-
generate_migration_test
|
47
|
+
generate_migration_test migration
|
46
48
|
|
47
|
-
migration_test_file = "test/migration
|
49
|
+
migration_test_file = "test/migration/#{migration}_create_the_dogs_table_test.rb"
|
48
50
|
assert File.exists?(migration_test_file), "Migration test not there: #{migration_test_file}"
|
49
51
|
|
50
52
|
run_in_rails_root "ruby #{migration_test_file}"
|
@@ -55,10 +57,10 @@ class MigrationTestGeneratorTest < Test::Unit::TestCase
|
|
55
57
|
end
|
56
58
|
|
57
59
|
in_foundry_should "generate a migration test for schema 2" do
|
58
|
-
generate_migration '
|
59
|
-
generate_migration '
|
60
|
-
generate_migration_test
|
61
|
-
migration_test_file = "test/migration
|
60
|
+
generate_migration 'create_the_dogs_table'
|
61
|
+
migration = generate_migration 'transfer_cats_data'
|
62
|
+
generate_migration_test migration
|
63
|
+
migration_test_file = "test/migration/#{migration}_transfer_cats_data_test.rb"
|
62
64
|
assert File.exists?(migration_test_file), "Migration test not there: #{migration_test_file}"
|
63
65
|
|
64
66
|
run_in_rails_root "ruby #{migration_test_file}"
|
@@ -69,19 +71,19 @@ class MigrationTestGeneratorTest < Test::Unit::TestCase
|
|
69
71
|
end
|
70
72
|
|
71
73
|
in_foundry_should "fail if no schema version is provided" do
|
72
|
-
generate_migration '
|
74
|
+
generate_migration 'create_the_dogs_table'
|
73
75
|
generate_migration_test ''
|
74
76
|
check_output 'Usage: script/generate migration_test MigrationTestName [options]'
|
75
77
|
end
|
76
78
|
|
77
79
|
in_foundry_should "fail if bad schema version is provided" do
|
78
|
-
generate_migration '
|
80
|
+
generate_migration 'create_the_dogs_table'
|
79
81
|
generate_migration_test 'oops'
|
80
82
|
check_output(/Invalid schema version 'oops'/i)
|
81
83
|
end
|
82
84
|
|
83
85
|
in_foundry_should "fail if schema version does not correspond to existing migration" do
|
84
|
-
generate_migration '
|
86
|
+
migration = generate_migration 'create_the_dogs_table'
|
85
87
|
generate_migration_test '2'
|
86
88
|
check_output "No migration found for schema version 002"
|
87
89
|
end
|
@@ -22,6 +22,11 @@ class MigrationTestHelperTest < Test::Unit::TestCase
|
|
22
22
|
yield
|
23
23
|
end
|
24
24
|
end
|
25
|
+
|
26
|
+
def declare_columns_on_table(t)
|
27
|
+
t.column :id, :integer
|
28
|
+
t.column :tail, :string, :default => 'top dog', :limit => 187
|
29
|
+
end
|
25
30
|
|
26
31
|
#
|
27
32
|
# TESTS
|
@@ -30,9 +35,10 @@ class MigrationTestHelperTest < Test::Unit::TestCase
|
|
30
35
|
see_no_failure do
|
31
36
|
assert_schema do |s|
|
32
37
|
s.table :dogs do |t|
|
33
|
-
|
34
|
-
|
38
|
+
declare_columns_on_table(t)
|
39
|
+
t.index :tail, :name => 'index_tail_on_dogs'
|
35
40
|
end
|
41
|
+
|
36
42
|
end
|
37
43
|
end
|
38
44
|
end
|
@@ -88,8 +94,8 @@ class MigrationTestHelperTest < Test::Unit::TestCase
|
|
88
94
|
def test_assert_table_should_not_fail_if_table_is_matched
|
89
95
|
see_no_failure do
|
90
96
|
assert_table :dogs do |t|
|
91
|
-
t
|
92
|
-
|
97
|
+
declare_columns_on_table(t)
|
98
|
+
t.index :tail, :name => 'index_tail_on_dogs'
|
93
99
|
end
|
94
100
|
end
|
95
101
|
end
|
@@ -129,8 +135,39 @@ class MigrationTestHelperTest < Test::Unit::TestCase
|
|
129
135
|
end
|
130
136
|
end
|
131
137
|
|
138
|
+
def test_assert_table_should_fail_if_an_index_is_not_specified
|
139
|
+
see_failure 'wrong indexes for table: <dogs>' do
|
140
|
+
assert_table :dogs do |t|
|
141
|
+
declare_columns_on_table(t)
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
def test_assert_schema_should_fail_if_a_column_in_an_index_is_not_found
|
147
|
+
see_failure 'wrong indexes for table: <dogs>' do
|
148
|
+
assert_table :dogs do |t|
|
149
|
+
declare_columns_on_table(t)
|
150
|
+
t.index :legs, :name => 'index_legs_on_dogs'
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
def test_assert_schema_should_fail_if_wrong_options_on_an_index
|
156
|
+
see_failure 'wrong indexes for table: <dogs>' do
|
157
|
+
assert_table :dogs do |t|
|
158
|
+
declare_columns_on_table(t)
|
159
|
+
t.index :tail, :name => 'index_tail_on_dogs', :unique => true
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
132
164
|
def test_should_drop_all_tables
|
133
|
-
|
165
|
+
if Rails::VERSION::MAJOR >= 2 && Rails::VERSION::MINOR >= 1
|
166
|
+
schema_table = 'schema_migrations'
|
167
|
+
else
|
168
|
+
schema_table = 'schema_info'
|
169
|
+
end
|
170
|
+
assert_equal ['dogs', schema_table].sort, ActiveRecord::Base.connection.tables.sort
|
134
171
|
drop_all_tables
|
135
172
|
assert_equal [], ActiveRecord::Base.connection.tables
|
136
173
|
drop_all_tables
|
metadata
CHANGED
@@ -1,77 +1,94 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.0
|
3
|
-
specification_version: 1
|
4
2
|
name: migration_test_helper
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.3.
|
7
|
-
date: 2007-03-31 00:00:00 -04:00
|
8
|
-
summary: A Rails plugin for testing migrations
|
9
|
-
require_paths:
|
10
|
-
- lib
|
11
|
-
email: micah@atomicobject.com
|
12
|
-
homepage: http://migrationtest.rubyforge.org
|
13
|
-
rubyforge_project: migrationtest
|
14
|
-
description: migration_test_helper makes testing your migrations easier by adding helper methods to Test::Unit::TestCase for asserting the current state of the schema and executing migrations against the test database.
|
15
|
-
autorequire:
|
16
|
-
default_executable:
|
17
|
-
bindir: bin
|
18
|
-
has_rdoc: true
|
19
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.0.0
|
24
|
-
version:
|
4
|
+
version: 1.3.3
|
25
5
|
platform: ruby
|
26
|
-
signing_key:
|
27
|
-
cert_chain:
|
28
|
-
post_install_message:
|
29
6
|
authors:
|
30
7
|
- Micah Alles
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
- test/foundry_only_helper.rb
|
35
|
-
- test/full_migration_test_generator_test.rb
|
36
|
-
- test/helper.rb
|
37
|
-
- test/log
|
38
|
-
- test/migration_test_generator_test.rb
|
39
|
-
- test/migration_test_helper_test.rb
|
40
|
-
- test/config/database.yml
|
41
|
-
- test/db/migrate_bad
|
42
|
-
- test/db/migrate_good
|
43
|
-
- test/db/schema.rb
|
44
|
-
- test/db/migrate_bad/001_create_top_dogs.rb
|
45
|
-
- test/db/migrate_good/001_create_top_dogs.rb
|
46
|
-
- test/db/migrate_good/002_create_bottom_dogs.rb
|
47
|
-
- test/db/migrate_good/003_create_cats.rb
|
48
|
-
- lib/migration_test_helper.rb
|
49
|
-
- tasks/migration_test_helper_tasks.rake
|
50
|
-
- LICENSE
|
51
|
-
- README
|
52
|
-
- Rakefile
|
53
|
-
- init.rb
|
54
|
-
- install.rb
|
55
|
-
- uninstall.rb
|
56
|
-
test_files: []
|
57
|
-
|
58
|
-
rdoc_options: []
|
59
|
-
|
60
|
-
extra_rdoc_files: []
|
61
|
-
|
62
|
-
executables: []
|
63
|
-
|
64
|
-
extensions: []
|
65
|
-
|
66
|
-
requirements: []
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
67
11
|
|
12
|
+
date: 2009-12-04 00:00:00 -05:00
|
13
|
+
default_executable:
|
68
14
|
dependencies:
|
69
15
|
- !ruby/object:Gem::Dependency
|
70
16
|
name: hoe
|
17
|
+
type: :development
|
71
18
|
version_requirement:
|
72
|
-
version_requirements: !ruby/object:Gem::
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
20
|
requirements:
|
74
21
|
- - ">="
|
75
22
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
23
|
+
version: 2.3.3
|
77
24
|
version:
|
25
|
+
description: |
|
26
|
+
migration_test_helper makes testing your migrations easier by
|
27
|
+
adding helper methods to Test::Unit::TestCase for asserting the
|
28
|
+
current state of the schema and executing migrations against the
|
29
|
+
test database.
|
30
|
+
|
31
|
+
email: micah@atomicobject.com
|
32
|
+
executables: []
|
33
|
+
|
34
|
+
extensions: []
|
35
|
+
|
36
|
+
extra_rdoc_files:
|
37
|
+
- ./Manifest.txt
|
38
|
+
files:
|
39
|
+
- ./generators/full_migration_test/full_migration_test_generator.rb
|
40
|
+
- ./generators/full_migration_test/templates/full_migration_test.rb
|
41
|
+
- ./generators/full_migration_test/USAGE
|
42
|
+
- ./generators/migration_test/migration_test_generator.rb
|
43
|
+
- ./generators/migration_test/templates/migration_test.rb
|
44
|
+
- ./init.rb
|
45
|
+
- ./install.rb
|
46
|
+
- ./lib/migration_test_helper.rb
|
47
|
+
- ./LICENSE
|
48
|
+
- ./Manifest.txt
|
49
|
+
- ./Rakefile
|
50
|
+
- ./README
|
51
|
+
- ./tasks/migration_test_helper_tasks.rake
|
52
|
+
- ./test/config/database.yml
|
53
|
+
- ./test/db/migrate_bad/001_create_top_dogs.rb
|
54
|
+
- ./test/db/migrate_good/001_create_top_dogs.rb
|
55
|
+
- ./test/db/migrate_good/002_create_bottom_dogs.rb
|
56
|
+
- ./test/db/migrate_good/003_create_cats.rb
|
57
|
+
- ./test/db/schema.rb
|
58
|
+
- ./test/foundry_only_helper.rb
|
59
|
+
- ./test/full_migration_test_generator_test.rb
|
60
|
+
- ./test/helper.rb
|
61
|
+
- ./test/migration_test_generator_test.rb
|
62
|
+
- ./test/migration_test_helper_test.rb
|
63
|
+
- ./uninstall.rb
|
64
|
+
has_rdoc: true
|
65
|
+
homepage: http://migrationtest.rubyforge.org
|
66
|
+
licenses: []
|
67
|
+
|
68
|
+
post_install_message:
|
69
|
+
rdoc_options:
|
70
|
+
- --main
|
71
|
+
- README.txt
|
72
|
+
require_paths:
|
73
|
+
- lib
|
74
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: "0"
|
79
|
+
version:
|
80
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: "0"
|
85
|
+
version:
|
86
|
+
requirements: []
|
87
|
+
|
88
|
+
rubyforge_project: migrationtest
|
89
|
+
rubygems_version: 1.3.5
|
90
|
+
signing_key:
|
91
|
+
specification_version: 3
|
92
|
+
summary: A Rails plugin for testing migrations
|
93
|
+
test_files: []
|
94
|
+
|