Better regression tests for roo

dev
Andy Meneely 2015-04-27 08:48:12 -04:00
parent d00ae0215f
commit 25773a8ee5
7 changed files with 32 additions and 4 deletions

View File

@ -4,7 +4,7 @@ Squib follows [semantic versioning](http://semver.org).
## v0.6.0 / Unreleased
Features:
* Upgraded roo (Excel parsing) to 2.0.0. Nothing major for Squib users, just keeping up with the times.
* Upgraded roo (Excel parsing) to 2.0.0. Nothing major for Squib users, just keeping up with the times. ()
Bugs:
* Fixed global text hinting (#63)

View File

@ -24,15 +24,15 @@ module Squib
def xlsx(opts = {})
opts = Squib::SYSTEM_DEFAULTS.merge(opts)
opts = Squib::InputHelpers.fileify(opts)
s = Roo::Excelx.new(opts[:file])
s = Roo::Excelx.new(opts[:file])
s.default_sheet = s.sheets[opts[:sheet]]
data = {}
s.first_column.upto(s.last_column) do |col|
header = s.cell(s.first_row,col).to_s
data[header] = []
(s.first_row+1).upto(s.last_row) do |row|
(s.first_row + 1).upto(s.last_row) do |row|
cell = s.cell(row,col)
# Roo hack for avoiding unnecessary .0's on whole integers
# Roo hack for avoiding unnecessary .0's on whole integers (https://github.com/roo-rb/roo/issues/139)
cell = s.excelx_value(row,col) if s.excelx_type(row,col) == [:numeric_or_formula, 'General']
data[header] << cell
end#row

View File

@ -28,4 +28,23 @@ describe Squib::Deck do
})
end
end
context '#xlsx' do
it 'loads basic xlsx data' do
expect(Squib.xlsx(file: xlsx_file('basic.xlsx'))).to eq({
'Name' => %w(Larry Curly Mo),
'General Number' => %w(1 2 3), #general types always get loaded as strings with no conversion
'Actual Number' => [4.0, 5.0, 6.0], #numbers get auto-converted to integers
})
end
it 'loads xlsx with formulas' do
expect(Squib.xlsx(file: xlsx_file('formulas.xlsx'))).to eq({
'A' => %w(1, 2),
'B' => %w(3, 4),
'Sum' => %w(4, 6),
})
end
end
end

BIN
spec/data/xlsx/basic.xlsx Normal file

Binary file not shown.

Binary file not shown.

View File

@ -32,6 +32,10 @@ def csv_file(file)
"#{File.expand_path(File.dirname(__FILE__))}/data/csv/#{file}"
end
def xlsx_file(file)
"#{File.expand_path(File.dirname(__FILE__))}/data/xlsx/#{file}"
end
def overwrite_sample(sample_name, log)
# Use this to overwrite the regression with current state
File.open(sample_regression_file(sample_name), 'w+:UTF-8') do |f|

View File

@ -43,6 +43,11 @@
"shell_cmd": "rspec spec/graphics/graphics_text_spec.rb",
"working_dir": "${project_path:${folder}}"
},
{
"name": "rspec spec/api/api_data_spec.rb",
"shell_cmd": "rspec spec/api/api_data_spec.rb",
"working_dir": "${project_path:${folder}}"
},
],