Better regression tests for roo
parent
d00ae0215f
commit
25773a8ee5
|
|
@ -4,7 +4,7 @@ Squib follows [semantic versioning](http://semver.org).
|
||||||
## v0.6.0 / Unreleased
|
## v0.6.0 / Unreleased
|
||||||
|
|
||||||
Features:
|
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:
|
Bugs:
|
||||||
* Fixed global text hinting (#63)
|
* Fixed global text hinting (#63)
|
||||||
|
|
|
||||||
|
|
@ -24,15 +24,15 @@ module Squib
|
||||||
def xlsx(opts = {})
|
def xlsx(opts = {})
|
||||||
opts = Squib::SYSTEM_DEFAULTS.merge(opts)
|
opts = Squib::SYSTEM_DEFAULTS.merge(opts)
|
||||||
opts = Squib::InputHelpers.fileify(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]]
|
s.default_sheet = s.sheets[opts[:sheet]]
|
||||||
data = {}
|
data = {}
|
||||||
s.first_column.upto(s.last_column) do |col|
|
s.first_column.upto(s.last_column) do |col|
|
||||||
header = s.cell(s.first_row,col).to_s
|
header = s.cell(s.first_row,col).to_s
|
||||||
data[header] = []
|
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)
|
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']
|
cell = s.excelx_value(row,col) if s.excelx_type(row,col) == [:numeric_or_formula, 'General']
|
||||||
data[header] << cell
|
data[header] << cell
|
||||||
end#row
|
end#row
|
||||||
|
|
|
||||||
|
|
@ -28,4 +28,23 @@ describe Squib::Deck do
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
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
|
end
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -32,6 +32,10 @@ def csv_file(file)
|
||||||
"#{File.expand_path(File.dirname(__FILE__))}/data/csv/#{file}"
|
"#{File.expand_path(File.dirname(__FILE__))}/data/csv/#{file}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def xlsx_file(file)
|
||||||
|
"#{File.expand_path(File.dirname(__FILE__))}/data/xlsx/#{file}"
|
||||||
|
end
|
||||||
|
|
||||||
def overwrite_sample(sample_name, log)
|
def overwrite_sample(sample_name, log)
|
||||||
# Use this to overwrite the regression with current state
|
# Use this to overwrite the regression with current state
|
||||||
File.open(sample_regression_file(sample_name), 'w+:UTF-8') do |f|
|
File.open(sample_regression_file(sample_name), 'w+:UTF-8') do |f|
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,11 @@
|
||||||
"shell_cmd": "rspec spec/graphics/graphics_text_spec.rb",
|
"shell_cmd": "rspec spec/graphics/graphics_text_spec.rb",
|
||||||
"working_dir": "${project_path:${folder}}"
|
"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}}"
|
||||||
|
},
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue