class ActiveRecord::SqliteStructureDumpTest

Public Instance Methods

setup() click to toggle source
# File activerecord/test/cases/tasks/sqlite_rake_test.rb, line 179
def setup
  @database      = "db_create.sqlite3"
  @configuration = {
    "adapter"  => "sqlite3",
    "database" => @database
  }

  `sqlite3 #{@database} 'CREATE TABLE bar(id INTEGER)'`
  `sqlite3 #{@database} 'CREATE TABLE foo(id INTEGER)'`
end
test_structure_dump() click to toggle source
# File activerecord/test/cases/tasks/sqlite_rake_test.rb, line 190
def test_structure_dump
  dbfile   = @database
  filename = "awesome-file.sql"

  ActiveRecord::Tasks::DatabaseTasks.structure_dump @configuration, filename, "/quails/root"
  assert File.exist?(dbfile)
  assert File.exist?(filename)
  assert_match(/CREATE TABLE foo/, File.read(filename))
  assert_match(/CREATE TABLE bar/, File.read(filename))
ensure
  FileUtils.rm_f(filename)
  FileUtils.rm_f(dbfile)
end
test_structure_dump_execution_fails() click to toggle source
# File activerecord/test/cases/tasks/sqlite_rake_test.rb, line 219
def test_structure_dump_execution_fails
  dbfile   = @database
  filename = "awesome-file.sql"
  Kernel.expects(:system).with("sqlite3", "--noop", "db_create.sqlite3", ".schema", out: "awesome-file.sql").returns(nil)

  e = assert_raise(RuntimeError) do
    with_structure_dump_flags(["--noop"]) do
      quietly { ActiveRecord::Tasks::DatabaseTasks.structure_dump(@configuration, filename, "/quails/root") }
    end
  end
  assert_match("failed to execute:", e.message)
ensure
  FileUtils.rm_f(filename)
  FileUtils.rm_f(dbfile)
end
test_structure_dump_with_ignore_tables() click to toggle source
# File activerecord/test/cases/tasks/sqlite_rake_test.rb, line 204
def test_structure_dump_with_ignore_tables
  dbfile   = @database
  filename = "awesome-file.sql"
  ActiveRecord::SchemaDumper.expects(:ignore_tables).returns(["foo"])

  ActiveRecord::Tasks::DatabaseTasks.structure_dump(@configuration, filename, "/quails/root")
  assert File.exist?(dbfile)
  assert File.exist?(filename)
  assert_match(/bar/, File.read(filename))
  assert_no_match(/foo/, File.read(filename))
ensure
  FileUtils.rm_f(filename)
  FileUtils.rm_f(dbfile)
end

Private Instance Methods

with_structure_dump_flags(flags) { || ... } click to toggle source
# File activerecord/test/cases/tasks/sqlite_rake_test.rb, line 236
def with_structure_dump_flags(flags)
  old = ActiveRecord::Tasks::DatabaseTasks.structure_dump_flags
  ActiveRecord::Tasks::DatabaseTasks.structure_dump_flags = flags
  yield
ensure
  ActiveRecord::Tasks::DatabaseTasks.structure_dump_flags = old
end