54 lines
2.2 KiB
Ruby
54 lines
2.2 KiB
Ruby
require 'rspec/core'
|
|
require 'rspec/expectations'
|
|
require 'rspec/mocks'
|
|
require_relative '../../lib/importer/excel2csv'
|
|
require_relative '../../../../spec/rspec_configuration.rb'
|
|
require_relative '../doubles/job'
|
|
require_relative '../doubles/csv_normalizer'
|
|
|
|
include Mocha::ParameterMatchers
|
|
|
|
describe CartoDB::Importer2::Excel2Csv do
|
|
before(:each) do
|
|
CartoDB.stubs(:python_path).returns('')
|
|
CartoDB.stubs(:python_bin_path).returns(`which python`.strip)
|
|
end
|
|
|
|
describe '#excel2csv' do
|
|
before(:each) do
|
|
@job = CartoDB::Importer2::Doubles::Job.new
|
|
@csv_normalizer = CartoDB::Importer2::Doubles::CsvNormalizer.new
|
|
end
|
|
|
|
describe '#run' do
|
|
it "parse xls file to csv" do
|
|
filepath = path_to('fixture_20150714.xls')
|
|
@excel2csv = CartoDB::Importer2::Excel2Csv.new("xls", filepath, @job, @csv_normalizer)
|
|
@excel2csv.stubs(:converted_filepath).returns("/tmp/converted_filepath_excel2csv")
|
|
@excel2csv.run
|
|
end
|
|
it "parse xlsx file to csv" do
|
|
filepath = path_to('fixture_20150714.xlsx')
|
|
@excel2csv = CartoDB::Importer2::Excel2Csv.new("xlsx", filepath, @job, @csv_normalizer)
|
|
@excel2csv.stubs(:converted_filepath).returns("/tmp/converted_filepath_excel2csv")
|
|
@excel2csv.run
|
|
end
|
|
it "raise if a csv file is passed as xls" do
|
|
filepath = path_to('csv_as_xls.xls')
|
|
@excel2csv = CartoDB::Importer2::Excel2Csv.new("xls", filepath, @job, @csv_normalizer)
|
|
@excel2csv.stubs(:converted_filepath).returns("/tmp/converted_filepath_excel2csv")
|
|
expect { @excel2csv.run }.to raise_error CartoDB::Importer2::MalformedXLSException
|
|
end
|
|
it "raise if a csv file is passed as xlsx" do
|
|
filepath = path_to('csv_as_xlsx.xlsx')
|
|
@excel2csv = CartoDB::Importer2::Excel2Csv.new("xlsx", filepath, @job, @csv_normalizer)
|
|
@excel2csv.stubs(:converted_filepath).returns("/tmp/converted_filepath_excel2csv")
|
|
expect { @excel2csv.run }.to raise_error CartoDB::Importer2::MalformedXLSException
|
|
end
|
|
end
|
|
end
|
|
def path_to(filename)
|
|
File.join(File.dirname(__FILE__), '..', 'fixtures', filename)
|
|
end
|
|
end
|