73 lines
2.4 KiB
Ruby
73 lines
2.4 KiB
Ruby
require_relative '../../lib/importer/runner'
|
|
require_relative '../../lib/importer/job'
|
|
require_relative '../../../../spec/spec_helper'
|
|
require_relative '../../lib/importer/downloader'
|
|
require_relative '../factories/pg_connection'
|
|
require_relative '../doubles/log'
|
|
require_relative '../doubles/user'
|
|
require_relative 'acceptance_helpers'
|
|
require_relative 'cdb_importer_context'
|
|
require_relative '../../../../spec/rspec_configuration.rb'
|
|
require_relative 'no_stats_context'
|
|
|
|
include CartoDB::Importer2
|
|
|
|
describe 'SHP regression tests' do
|
|
include AcceptanceHelpers
|
|
include_context 'cdb_importer schema'
|
|
include_context "no stats"
|
|
|
|
before(:all) do
|
|
@user = create_user
|
|
@user.save
|
|
end
|
|
|
|
after(:all) do
|
|
@user.destroy
|
|
end
|
|
|
|
it 'imports SHP files' do
|
|
filepath = path_to('TM_WORLD_BORDERS_SIMPL-0.3.zip')
|
|
downloader = Downloader.new(@user.id, filepath)
|
|
runner = Runner.new({
|
|
pg: @user.db_service.db_configuration_for,
|
|
downloader: downloader,
|
|
log: CartoDB::Importer2::Doubles::Log.new(@user),
|
|
user: @user
|
|
})
|
|
runner.run
|
|
|
|
geometry_type_for(runner, @user).should eq "MULTIPOLYGON"
|
|
job = runner.send(:job)
|
|
job.db.fetch(%Q{SELECT * FROM #{job.schema}.#{job.table_name}}).count
|
|
end
|
|
|
|
it 'imports shp files without .prj' do
|
|
filepath = path_to('shp_no_prj.zip')
|
|
downloader = Downloader.new(@user.id, filepath)
|
|
runner = Runner.new({
|
|
pg: @user.db_service.db_configuration_for,
|
|
downloader: downloader,
|
|
log: CartoDB::Importer2::Doubles::Log.new(@user),
|
|
user: @user
|
|
})
|
|
runner.run
|
|
|
|
geometry_type_for(runner, @user).should eq "MULTIPOLYGON"
|
|
job = runner.send(:job)
|
|
job.db.fetch(%Q{SELECT * FROM #{job.schema}.#{job.table_name}}).count
|
|
end
|
|
|
|
it 'generates proper error for invalid geometries' do
|
|
filepath = path_to('invalid_geom.zip')
|
|
downloader = Downloader.new(@user.id, filepath)
|
|
runner = Runner.new(pg: @user.db_service.db_configuration_for,
|
|
downloader: downloader,
|
|
log: CartoDB::Importer2::Doubles::Log.new(@user),
|
|
user: @user)
|
|
runner.run
|
|
|
|
expect(runner.results.first.error_code).to eq(2014)
|
|
end
|
|
end
|