invidious/lib/sqlite3/spec/spec_helper.cr
Leon Klingele 40fb17791e
shard: track dependencies
Commit the whole ./lib/ folder which stores the Crystal dependencies.
This has a few benefits:

- Allows to build the project without a connection to the Internet
  to retrieve dependencies.
- Makes the project resistant against dependency re-tags which might
  include malicious code.
2019-08-15 01:51:27 +02:00

34 lines
733 B
Crystal

require "spec"
require "../src/sqlite3"
include SQLite3
DB_FILENAME = "./test.db"
def with_db(&block : DB::Database ->)
File.delete(DB_FILENAME) rescue nil
DB.open "sqlite3:#{DB_FILENAME}", &block
ensure
File.delete(DB_FILENAME)
end
def with_cnn(&block : DB::Connection ->)
File.delete(DB_FILENAME) rescue nil
DB.connect "sqlite3:#{DB_FILENAME}", &block
ensure
File.delete(DB_FILENAME)
end
def with_db(config, &block : DB::Database ->)
uri = "sqlite3:#{config}"
filename = SQLite3::Connection.filename(URI.parse(uri))
File.delete(filename) rescue nil
DB.open uri, &block
ensure
File.delete(filename) if filename
end
def with_mem_db(&block : DB::Database ->)
DB.open "sqlite3://%3Amemory%3A", &block
end