cartodb/services/importer/spec/unit/sql_loader_spec.rb
2020-06-15 10:58:47 +08:00

52 lines
1.7 KiB
Ruby

require_relative '../../lib/importer/psql'
require_relative '../factories/pg_connection'
require_relative '../../../../services/importer/spec/acceptance/cdb_importer_context'
describe 'SQL linter' do
include CartoDB::Importer2
include_context 'cdb_importer schema'
describe '#create_table_statement' do
it 'returns a create table statement with the passed table name' do
table_name = 'foo'
filepath = File.expand_path('../../fixtures/csv_with_lat_lon.sql', __FILE__)
stream = File.open(filepath)
pg_options = {}
psql = CartoDB::Importer2::Psql.new(table_name, filepath, pg_options)
psql.create_table_statement(File.open(filepath))
.should match /#{table_name}/
end
end
describe '#copy_satement' do
it 'returns a copy statement with the passed table name' do
table_name = 'foo'
filepath = File.expand_path('../../fixtures/csv_with_lat_lon.sql', __FILE__)
stream = File.open(filepath)
pg_options = {}
psql = CartoDB::Importer2::Psql.new(table_name, filepath, pg_options)
psql.copy_statement(File.open(filepath))
.should match /#{table_name}/
end
end
describe '#run' do
it 'runs' do
table_name = 'importer_' + Time.now.to_f.to_s
filepath = File.expand_path('../../fixtures/csv_with_lat_lon.sql', __FILE__)
stream = File.open(filepath)
pg_connection = CartoDB::Importer2::Factories::PGConnection.new
psql = CartoDB::Importer2::Psql.new(table_name, filepath, pg_connection.pg_options)
psql.run
pg_connection.connection[%Q(
SELECT * FROM "cdb_importer"."#{table_name}"
)].to_a.should_not be_empty
end
end
end