migration_test_helper 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +20 -0
- data/README +108 -0
- data/Rakefile +58 -0
- data/init.rb +7 -0
- data/install.rb +1 -0
- data/lib/migration_test_helper.rb +127 -0
- data/tasks/migration_test_helper_tasks.rake +4 -0
- data/test/config/database.yml +3 -0
- data/test/db/migrate_good/001_create_top_dogs.rb +11 -0
- data/test/db/migrate_good/002_create_bottom_dogs.rb +12 -0
- data/test/db/migrate_good/003_create_cats.rb +11 -0
- data/test/db/schema.rb +5 -0
- data/test/helper.rb +29 -0
- data/test/migration_test_helper_test.rb +164 -0
- data/uninstall.rb +1 -0
- metadata +71 -0
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2007 Micah Alles, Patrick Bacon, David Crosby
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README
ADDED
@@ -0,0 +1,108 @@
|
|
1
|
+
= MigrationTestHelper
|
2
|
+
|
3
|
+
MigrationTestHelper provides methods which let you assert the current state of the schema and run your migrations against the _test_ database.
|
4
|
+
|
5
|
+
== Install
|
6
|
+
|
7
|
+
./script/plugin install svn://rubyforge.org/var/svn/migrationtest/tags/migration_test_helper
|
8
|
+
|
9
|
+
OR
|
10
|
+
|
11
|
+
gem install migration_test_helper
|
12
|
+
|
13
|
+
|
14
|
+
If you're using it outside of a Rails environment (for whatever reason) include the MigrationTestHelper module in your tests:
|
15
|
+
|
16
|
+
require 'test/unit'
|
17
|
+
require 'migration_test_helper'
|
18
|
+
|
19
|
+
class MyTest < Test::Unit::TestCase
|
20
|
+
include MigrationTestHelper
|
21
|
+
|
22
|
+
def test_something
|
23
|
+
...
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
== Use
|
28
|
+
|
29
|
+
*assert_schema*: verifies the schema of the database exactly matches the one specified.
|
30
|
+
|
31
|
+
def test_the_schema
|
32
|
+
assert_schema do |s|
|
33
|
+
s.table :books do |t|
|
34
|
+
t.column :id, :integer
|
35
|
+
t.column :title, :string
|
36
|
+
t.column :author, :string
|
37
|
+
end
|
38
|
+
|
39
|
+
s.table :reviews do |t|
|
40
|
+
t.column :id, :integer
|
41
|
+
t.column :book_id, :integer
|
42
|
+
t.column :body, :text
|
43
|
+
t.column :rating, :integer
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
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
|
+
|
50
|
+
|
51
|
+
*drop_all_tables*: does just what it says to your _test_ database.
|
52
|
+
|
53
|
+
*migrate*: executes the migrations against the test database using the same mechanism as rake db:migrate.
|
54
|
+
|
55
|
+
def test_the_migrations
|
56
|
+
migrate
|
57
|
+
migrate :version => 0
|
58
|
+
migrate :version => 10
|
59
|
+
migrate
|
60
|
+
end
|
61
|
+
|
62
|
+
|
63
|
+
This would do the same thing as running the following rake commands, but within a test case:
|
64
|
+
|
65
|
+
rake db:migrate
|
66
|
+
rake db:migrate VERSION=0
|
67
|
+
rake db:migrate VERSION=10
|
68
|
+
rake db:migrate
|
69
|
+
|
70
|
+
|
71
|
+
By combining the two helpers you can write a test that shows you can run all your migrations and get the final schema:
|
72
|
+
|
73
|
+
def test_should_be_able_to_migrate_from_an_empty_schema
|
74
|
+
drop_all_tables
|
75
|
+
|
76
|
+
# we shouldn't have any tables
|
77
|
+
assert_schema do |s|
|
78
|
+
end
|
79
|
+
|
80
|
+
migrate
|
81
|
+
|
82
|
+
assert_schema do |s|
|
83
|
+
s.table :books do |t|
|
84
|
+
t.column :id, :integer
|
85
|
+
t.column :title, :string
|
86
|
+
t.column :author, :string
|
87
|
+
end
|
88
|
+
|
89
|
+
s.table :reviews do |t|
|
90
|
+
t.column :id, :integer
|
91
|
+
t.column :book_id, :integer
|
92
|
+
t.column :body, :text
|
93
|
+
t.column :rating, :integer
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
|
99
|
+
The *migrate* helper can also be useful for testing data tranformation migrations:
|
100
|
+
|
101
|
+
def test_should_get_rid_of_bad_data
|
102
|
+
drop_all_tables
|
103
|
+
migrate :version => 7
|
104
|
+
book = Book.create! :title => "bad title\nwith\todd spacing"
|
105
|
+
migrate :version => 8 # should cleanse spacing in book titles
|
106
|
+
book.reload
|
107
|
+
assert_equal "bad title with odd spacing", book.title
|
108
|
+
end
|
data/Rakefile
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/testtask'
|
3
|
+
require 'rake/rdoctask'
|
4
|
+
require 'hoe'
|
5
|
+
|
6
|
+
desc 'Default: run unit tests.'
|
7
|
+
task :default => :test
|
8
|
+
|
9
|
+
desc 'Generate documentation for the migration_test_helper plugin.'
|
10
|
+
Rake::RDocTask.new(:rdoc) do |rdoc|
|
11
|
+
rdoc.rdoc_dir = 'rdoc'
|
12
|
+
rdoc.title = 'MigrationTestHelper'
|
13
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
14
|
+
rdoc.rdoc_files.include('README')
|
15
|
+
rdoc.rdoc_files.include('LICENSE')
|
16
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
17
|
+
end
|
18
|
+
|
19
|
+
GEM_VERSION = '0.1.0'
|
20
|
+
|
21
|
+
Hoe.new('migration_test_helper',GEM_VERSION) do |p|
|
22
|
+
p.author = "Micah Alles"
|
23
|
+
p.email = "micah@atomicobject.com"
|
24
|
+
p.url = "http://migrationtest.rubyforge.org"
|
25
|
+
p.summary = "A Rails plugin for testing migrations"
|
26
|
+
p.description = <<-EOS
|
27
|
+
migration_test_helper makes testing your migrations easier by
|
28
|
+
adding helper methods to Test::Unit::TestCase for asserting the
|
29
|
+
current state of the schema and executing migrations against the
|
30
|
+
test database.
|
31
|
+
EOS
|
32
|
+
|
33
|
+
p.gem_files = FileList["{test,lib,tasks}/**/*"] + %w|LICENSE README Rakefile init.rb install.rb uninstall.rb|
|
34
|
+
|
35
|
+
p.changes = <<-EOS
|
36
|
+
EOS
|
37
|
+
p.rubyforge_name = 'migrationtest'
|
38
|
+
end
|
39
|
+
|
40
|
+
desc "Release from current trunk"
|
41
|
+
task :plugin_release do
|
42
|
+
require 'fileutils'
|
43
|
+
include FileUtils::Verbose
|
44
|
+
cd File.expand_path(File.dirname(__FILE__)) do
|
45
|
+
sh 'svn up'
|
46
|
+
status = `svn status`
|
47
|
+
raise "Please clean up before releasing.\n#{status}" unless status == ""
|
48
|
+
|
49
|
+
if `svn ls svn+ssh://alles@rubyforge.org/var/svn/migrationtest/tags/rel-#{GEM_VERSION} -m` =~ /migration_test_helper/
|
50
|
+
sh "svn del svn+ssh://alles@rubyforge.org/var/svn/migrationtest/tags/rel-#{GEM_VERSION} -m 'Preparing to update stable release tag'"
|
51
|
+
end
|
52
|
+
sh "svn cp . svn+ssh://alles@rubyforge.org/var/svn/migrationtest/tags/rel-#{GEM_VERSION} -m 'Releasing version #{GEM_VERSION}'"
|
53
|
+
if `svn ls svn+ssh://alles@rubyforge.org/var/svn/migrationtest/tags/migration_test_helper` =~ /migration_test_helper/
|
54
|
+
sh "svn del svn+ssh://alles@rubyforge.org/var/svn/migrationtest/tags/migration_test_helper -m 'Preparing to update stable release tag'"
|
55
|
+
end
|
56
|
+
sh "svn cp . svn+ssh://alles@rubyforge.org/var/svn/migrationtest/tags/migration_test_helper -m 'Updating stable tag to version #{GEM_VERSION}'"
|
57
|
+
end
|
58
|
+
end
|
data/init.rb
ADDED
data/install.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# Install hook code here
|
@@ -0,0 +1,127 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright (c) 2007 Micah Alles, Patrick Bacon, David Crosby
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
# a copy of this software and associated documentation files (the
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
# the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#++
|
23
|
+
|
24
|
+
require 'test/unit/assertions'
|
25
|
+
|
26
|
+
module MigrationTestHelper
|
27
|
+
def self.migration_dir
|
28
|
+
@migration_dir || File.expand_path(RAILS_ROOT + '/db/migrate')
|
29
|
+
end
|
30
|
+
|
31
|
+
#
|
32
|
+
# sets the directory in which the migrations reside to be run with migrate
|
33
|
+
#
|
34
|
+
def self.migration_dir=(new_dir)
|
35
|
+
@migration_dir = new_dir
|
36
|
+
end
|
37
|
+
|
38
|
+
#
|
39
|
+
# verifies the schema exactly matches the one specified (schema_info does not have to be specified)
|
40
|
+
#
|
41
|
+
# assert_schema do |s|
|
42
|
+
# s.table :dogs do |t|
|
43
|
+
# t.column :id, :integer
|
44
|
+
# t.column :name, :string
|
45
|
+
# end
|
46
|
+
# end
|
47
|
+
#
|
48
|
+
def assert_schema
|
49
|
+
schema = Schema.new
|
50
|
+
yield schema
|
51
|
+
schema.verify
|
52
|
+
end
|
53
|
+
|
54
|
+
#
|
55
|
+
# drops all tables in the database
|
56
|
+
#
|
57
|
+
def drop_all_tables
|
58
|
+
ActiveRecord::Base.connection.tables.each do |table|
|
59
|
+
ActiveRecord::Base.connection.drop_table(table)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
#
|
64
|
+
# executes your migrations
|
65
|
+
#
|
66
|
+
# migrate # same as rake db:migrate
|
67
|
+
#
|
68
|
+
# migrate :version => 10 # same as rake db:migrate VERSION=10
|
69
|
+
#
|
70
|
+
def migrate(opts={})
|
71
|
+
version = opts[:version] ? opts[:version].to_i : nil
|
72
|
+
ActiveRecord::Migrator.migrate(MigrationTestHelper.migration_dir, version)
|
73
|
+
end
|
74
|
+
|
75
|
+
module Connection #:nodoc:
|
76
|
+
def conn
|
77
|
+
ActiveRecord::Base.connection
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
class Schema
|
82
|
+
include Connection
|
83
|
+
include Test::Unit::Assertions
|
84
|
+
|
85
|
+
def initialize #:nodoc:
|
86
|
+
@tables = []
|
87
|
+
end
|
88
|
+
|
89
|
+
def table(name)
|
90
|
+
table = Table.new(name)
|
91
|
+
yield table
|
92
|
+
table.verify
|
93
|
+
@tables << table
|
94
|
+
end
|
95
|
+
|
96
|
+
def verify #:nodoc:
|
97
|
+
actual_tables = conn.tables.reject {|t| t == 'schema_info' }
|
98
|
+
expected_tables = @tables.map {|t| t.name }
|
99
|
+
assert_equal expected_tables.sort, actual_tables.sort, 'wrong tables in schema'
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
class Table
|
104
|
+
include Connection
|
105
|
+
include Test::Unit::Assertions
|
106
|
+
attr_reader :name
|
107
|
+
|
108
|
+
def initialize(name) #:nodoc:
|
109
|
+
@name = name.to_s
|
110
|
+
@columns = []
|
111
|
+
assert conn.tables.include?(@name), "table <#{@name}> not found in schema"
|
112
|
+
end
|
113
|
+
|
114
|
+
def column(colname,type)
|
115
|
+
colname = colname.to_s
|
116
|
+
@columns << colname
|
117
|
+
col = conn.columns(name).find {|c| c.name == colname }
|
118
|
+
assert_not_nil col, "column <#{colname}> not found in table <#{self.name}>"
|
119
|
+
assert_equal type, col.type, "wrong type for column <#{colname}> in table <#{name}>"
|
120
|
+
end
|
121
|
+
|
122
|
+
def verify #:nodoc:
|
123
|
+
actual_columns = conn.columns(name).map {|c| c.name }
|
124
|
+
assert_equal @columns.sort, actual_columns.sort, "wrong columns for table: <#{name}>"
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
data/test/db/schema.rb
ADDED
data/test/helper.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
ENV["RAILS_ENV"] = "test"
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../../../config/environment')
|
3
|
+
require 'logger'
|
4
|
+
require 'test_help'
|
5
|
+
|
6
|
+
plugin_path = RAILS_ROOT + "/vendor/plugins/migration_test_helper"
|
7
|
+
|
8
|
+
config_location = File.expand_path(plugin_path + "/test/config/database.yml")
|
9
|
+
|
10
|
+
config = YAML::load(ERB.new(IO.read(config_location)).result)
|
11
|
+
ActiveRecord::Base.logger = Logger.new(plugin_path + "/test/log/test.log")
|
12
|
+
ActiveRecord::Base.establish_connection(config['test'])
|
13
|
+
|
14
|
+
Test::Unit::TestCase.fixture_path = plugin_path + "/test/fixtures/"
|
15
|
+
|
16
|
+
$LOAD_PATH.unshift(Test::Unit::TestCase.fixture_path)
|
17
|
+
|
18
|
+
class Test::Unit::TestCase
|
19
|
+
def plugin_path(path)
|
20
|
+
File.expand_path(File.dirname(__FILE__) + '/../' + path)
|
21
|
+
end
|
22
|
+
|
23
|
+
def load_default_schema
|
24
|
+
ActiveRecord::Migration.suppress_messages do
|
25
|
+
schema_file = plugin_path("/test/db/schema.rb")
|
26
|
+
load(schema_file) if File.exist?(schema_file)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,164 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/helper')
|
2
|
+
|
3
|
+
class MigrationTestHelperTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
load_default_schema
|
7
|
+
MigrationTestHelper.migration_dir = plugin_path('test/db/migrate_good')
|
8
|
+
end
|
9
|
+
|
10
|
+
#
|
11
|
+
# HELPERS
|
12
|
+
#
|
13
|
+
def see_failure(pattern='')
|
14
|
+
err = assert_raise(Test::Unit::AssertionFailedError) do
|
15
|
+
yield
|
16
|
+
end
|
17
|
+
assert_match(/#{pattern}/mi, err.message)
|
18
|
+
end
|
19
|
+
|
20
|
+
def see_no_failure
|
21
|
+
assert_nothing_raised do
|
22
|
+
yield
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
#
|
27
|
+
# TESTS
|
28
|
+
#
|
29
|
+
def test_assert_schema_should_not_fail_if_schema_is_matched
|
30
|
+
see_no_failure do
|
31
|
+
assert_schema do |s|
|
32
|
+
s.table :dogs do |t|
|
33
|
+
t.column :id, :integer
|
34
|
+
t.column :tail, :string
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_should_fail_if_a_table_is_not_specified
|
41
|
+
see_failure 'wrong tables in schema.*dogs' do
|
42
|
+
assert_schema do |s|
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_should_fail_if_a_table_is_not_found
|
48
|
+
see_failure 'table <things> not found in schema' do
|
49
|
+
assert_schema do |s|
|
50
|
+
s.table :things do |t|
|
51
|
+
t.column :id, :integer
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_should_fail_if_a_column_is_not_specified
|
58
|
+
see_failure 'wrong columns for table.*dogs.*tail' do
|
59
|
+
assert_schema do |s|
|
60
|
+
s.table :dogs do |t|
|
61
|
+
t.column :id, :integer
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_should_fail_if_a_column_is_not_found
|
68
|
+
see_failure 'column <legs> not found in table <dogs>' do
|
69
|
+
assert_schema do |s|
|
70
|
+
s.table :dogs do |t|
|
71
|
+
t.column :id, :integer
|
72
|
+
t.column :tail, :string
|
73
|
+
t.column :legs, :integer
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def test_should_drop_all_tables
|
80
|
+
assert_equal ['dogs','schema_info'].sort, ActiveRecord::Base.connection.tables.sort
|
81
|
+
drop_all_tables
|
82
|
+
assert_equal [], ActiveRecord::Base.connection.tables
|
83
|
+
drop_all_tables
|
84
|
+
assert_equal [], ActiveRecord::Base.connection.tables
|
85
|
+
end
|
86
|
+
|
87
|
+
def test_should_migrate_to_highest_version
|
88
|
+
drop_all_tables
|
89
|
+
assert_schema do |s|
|
90
|
+
end
|
91
|
+
|
92
|
+
migrate :version => 1
|
93
|
+
|
94
|
+
assert_schema do |s|
|
95
|
+
s.table :top_dogs do |t|
|
96
|
+
t.column :id, :integer
|
97
|
+
t.column :name, :string
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
migrate :version => 2
|
102
|
+
|
103
|
+
assert_schema do |s|
|
104
|
+
s.table :top_dogs do |t|
|
105
|
+
t.column :id, :integer
|
106
|
+
t.column :name, :string
|
107
|
+
end
|
108
|
+
s.table :bottom_dogs do |t|
|
109
|
+
t.column :id, :integer
|
110
|
+
t.column :name, :string
|
111
|
+
t.column :sick, :boolean
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
migrate :version => 3
|
116
|
+
|
117
|
+
assert_schema do |s|
|
118
|
+
s.table :top_dogs do |t|
|
119
|
+
t.column :id, :integer
|
120
|
+
t.column :name, :string
|
121
|
+
end
|
122
|
+
s.table :bottom_dogs do |t|
|
123
|
+
t.column :id, :integer
|
124
|
+
t.column :name, :string
|
125
|
+
t.column :sick, :boolean
|
126
|
+
end
|
127
|
+
s.table :cats do |t|
|
128
|
+
t.column :id, :integer
|
129
|
+
t.column :lives, :integer
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
migrate :version => 0
|
134
|
+
|
135
|
+
assert_schema do |s|
|
136
|
+
end
|
137
|
+
|
138
|
+
migrate
|
139
|
+
|
140
|
+
assert_schema do |s|
|
141
|
+
s.table :top_dogs do |t|
|
142
|
+
t.column :id, :integer
|
143
|
+
t.column :name, :string
|
144
|
+
end
|
145
|
+
s.table :bottom_dogs do |t|
|
146
|
+
t.column :id, :integer
|
147
|
+
t.column :name, :string
|
148
|
+
t.column :sick, :boolean
|
149
|
+
end
|
150
|
+
s.table :cats do |t|
|
151
|
+
t.column :id, :integer
|
152
|
+
t.column :lives, :integer
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
def test_should_have_default_migration_dir_set
|
158
|
+
MigrationTestHelper.migration_dir = nil
|
159
|
+
assert_equal File.expand_path(RAILS_ROOT + '/db/migrate'), MigrationTestHelper.migration_dir,
|
160
|
+
"wrong default migration dir"
|
161
|
+
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
data/uninstall.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# Uninstall hook code here
|
metadata
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.8.11
|
3
|
+
specification_version: 1
|
4
|
+
name: migration_test_helper
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: 0.1.0
|
7
|
+
date: 2007-01-30 00:00:00 -05: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:
|
25
|
+
platform: ruby
|
26
|
+
signing_key:
|
27
|
+
cert_chain:
|
28
|
+
authors:
|
29
|
+
- Micah Alles
|
30
|
+
files:
|
31
|
+
- test/config
|
32
|
+
- test/db
|
33
|
+
- test/helper.rb
|
34
|
+
- test/log
|
35
|
+
- test/migration_test_helper_test.rb
|
36
|
+
- test/config/database.yml
|
37
|
+
- test/db/migrate_good
|
38
|
+
- test/db/schema.rb
|
39
|
+
- test/db/migrate_good/001_create_top_dogs.rb
|
40
|
+
- test/db/migrate_good/002_create_bottom_dogs.rb
|
41
|
+
- test/db/migrate_good/003_create_cats.rb
|
42
|
+
- lib/migration_test_helper.rb
|
43
|
+
- tasks/migration_test_helper_tasks.rake
|
44
|
+
- LICENSE
|
45
|
+
- README
|
46
|
+
- Rakefile
|
47
|
+
- init.rb
|
48
|
+
- install.rb
|
49
|
+
- uninstall.rb
|
50
|
+
test_files: []
|
51
|
+
|
52
|
+
rdoc_options: []
|
53
|
+
|
54
|
+
extra_rdoc_files: []
|
55
|
+
|
56
|
+
executables: []
|
57
|
+
|
58
|
+
extensions: []
|
59
|
+
|
60
|
+
requirements: []
|
61
|
+
|
62
|
+
dependencies:
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: hoe
|
65
|
+
version_requirement:
|
66
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: 1.1.7
|
71
|
+
version:
|