Skip to content

Instantly share code, notes, and snippets.

@codenamejason
Created July 20, 2015 04:36
Show Gist options
  • Save codenamejason/8e0f868ffdcbff1dd338 to your computer and use it in GitHub Desktop.
Save codenamejason/8e0f868ffdcbff1dd338 to your computer and use it in GitHub Desktop.
xlsTest
import pytest
from sow_web_codegen.reader.xlsx import XlsxReader
from sow_web_codegen.reader.xlsx import XlsxReaderInvalidFileFormatException
from tests import EXAMPLE_WORKSHEET_XLSX as example_worksheet
def gen_get_value_func(columns, row):
def get_column(column):
return row[columns.index(column)]
return get_column
def test__get_column_index_map():
reader = XlsxReader()
col_idx_map = reader._get_column_index_map(example_worksheet["columns"])
columns = reader._get_columns(col_idx_map)
def test_can_read():
reader = XlsxReader()
assert False == reader.can_read('nonexisting.file')
assert True == reader.can_read('nonexisting.xlsx')
def test_read_invalid_file():
reader = XlsxReader()
with pytest.raises(XlsxReaderInvalidFileFormatException):
reader.read('nonexisting.file')
def test_read():
reader = XlsxReader()
data = reader.read(example_worksheet["file"])
col_idx_map = reader._get_column_index_map(example_worksheet["columns"])
expect_columns = reader._get_columns(col_idx_map)
assert list == type(data['columns'])
assert list == type(data['rows'])
assert expect_columns == data['columns']
# row 1
get_col = gen_get_value_func(data['columns'], data['rows'][0])
assert get_col('section') == 'Section1'
assert get_col('worksheet') == 'Worksheet1'
assert get_col('qtext') == 'Question1'
assert get_col('qname') == 'question_1'
assert get_col('livestock') == True
assert get_col('crop') == True
assert get_col('trader') == True
assert get_col('greenhouse') == True
assert get_col('apiary') == True
assert get_col('handler') == True
assert get_col('wild_crop') == True
assert get_col('notes') == 'Nada'
assert get_col('field_type') == 'bool'
assert get_col('matrix') == False
assert get_col('answers') == []
assert get_col('answers_name') == ''
assert get_col('help_text') == ''
assert get_col('inline_attach') == False
# row 2
get_col = gen_get_value_func(data['columns'], data['rows'][1])
assert get_col('section') == 'Section1'
assert get_col('worksheet') == 'Worksheet1'
assert get_col('qtext') == 'Question2'
assert get_col('qname') == 'question_2'
assert get_col('livestock') == True
assert get_col('crop') == True
assert get_col('trader') == True
assert get_col('greenhouse') == False
assert get_col('apiary') == False
assert get_col('handler') == False
assert get_col('wild_crop') == False
assert get_col('notes') == ''
assert get_col('field_type') == 'checkbox'
assert get_col('matrix') == True
assert get_col('answers') == []
assert get_col('answers_name') == ''
assert get_col('help_text') == 'Help Me!'
assert get_col('inline_attach') == True
# row 3
get_col = gen_get_value_func(data['columns'], data['rows'][2])
assert get_col('section') == 'Section1'
assert get_col('worksheet') == 'Worksheet1'
assert get_col('qtext') == 'Question3'
assert get_col('qname') == 'question_3'
assert get_col('livestock') == True
assert get_col('crop') == True
assert get_col('trader') == True
assert get_col('greenhouse') == False
assert get_col('apiary') == False
assert get_col('handler') == False
assert get_col('wild_crop') == False
assert get_col('notes') == ''
assert get_col('field_type') == 'checkbox_list'
assert get_col('matrix') == True
assert get_col('answers') == ['one', 'two', 'three', 'four']
assert get_col('answers_name') == 'numbers'
assert get_col('help_text') == ''
assert get_col('inline_attach') == False
# row 4
get_col = gen_get_value_func(data['columns'], data['rows'][3])
assert get_col('section') == 'Section1'
assert get_col('worksheet') == 'Worksheet2'
assert get_col('qtext') == 'Question4'
assert get_col('qname') == 'question_4'
assert get_col('livestock') == True
assert get_col('crop') == True
assert get_col('trader') == True
assert get_col('greenhouse') == True
assert get_col('apiary') == False
assert get_col('handler') == False
assert get_col('wild_crop') == False
assert get_col('notes') == ''
assert get_col('field_type') == 'bool'
assert get_col('matrix') == False
assert get_col('answers') == []
assert get_col('answers_name') == ''
assert get_col('help_text') == ''
assert get_col('inline_attach') == False
# row 5
get_col = gen_get_value_func(data['columns'], data['rows'][4])
assert get_col('section') == 'Section1'
assert get_col('worksheet') == 'Worksheet2'
assert get_col('qtext') == 'Question5'
assert get_col('qname') == 'question_5'
assert get_col('livestock') == True
assert get_col('crop') == True
assert get_col('trader') == True
assert get_col('greenhouse') == True
assert get_col('apiary') == False
assert get_col('handler') == False
assert get_col('wild_crop') == False
assert get_col('notes') == ''
assert get_col('field_type') == 'text'
assert get_col('matrix') == False
assert get_col('answers') == []
assert get_col('answers_name') == ''
assert get_col('help_text') == ''
assert get_col('inline_attach') == False
# row 6
get_col = gen_get_value_func(data['columns'], data['rows'][5])
assert get_col('section') == 'Section1'
assert get_col('worksheet') == 'Worksheet2'
assert get_col('qtext') == 'Question6'
assert get_col('qname') == 'question_6'
assert get_col('livestock') == True
assert get_col('crop') == True
assert get_col('trader') == True
assert get_col('greenhouse') == True
assert get_col('apiary') == False
assert get_col('handler') == False
assert get_col('wild_crop') == False
assert get_col('notes') == ''
assert get_col('field_type') == 'select'
assert get_col('matrix') == False
assert get_col('answers') == ['a', 'b', 'c', 'd']
assert get_col('answers_name') == 'letters'
assert get_col('help_text') == ''
assert get_col('inline_attach') == False
# row 7
get_col = gen_get_value_func(data['columns'], data['rows'][6])
assert get_col('section') == 'Section2'
assert get_col('worksheet') == 'Worksheet3'
assert get_col('qtext') == 'Question7'
assert get_col('qname') == 'question_7'
assert get_col('livestock') == False
assert get_col('crop') == False
assert get_col('trader') == True
assert get_col('greenhouse') == True
assert get_col('apiary') == False
assert get_col('handler') == False
assert get_col('wild_crop') == False
assert get_col('notes') == 'Nada'
assert get_col('field_type') == 'bool'
assert get_col('matrix') == True
assert get_col('answers') == []
assert get_col('answers_name') == ''
assert get_col('help_text') == ''
assert get_col('inline_attach') == False
# row 8
get_col = gen_get_value_func(data['columns'], data['rows'][7])
assert get_col('section') == 'Section2'
assert get_col('worksheet') == 'Worksheet3'
assert get_col('qtext') == 'Question8'
assert get_col('qname') == 'question_8'
assert get_col('livestock') == False
assert get_col('crop') == False
assert get_col('trader') == True
assert get_col('greenhouse') == True
assert get_col('apiary') == False
assert get_col('handler') == False
assert get_col('wild_crop') == False
assert get_col('notes') == ''
assert get_col('field_type') == 'checkbox'
assert get_col('matrix') == True
assert get_col('answers') == []
assert get_col('answers_name') == ''
assert get_col('help_text') == ''
assert get_col('inline_attach') == False
# row 9
get_col = gen_get_value_func(data['columns'], data['rows'][8])
assert get_col('section') == 'Section2'
assert get_col('worksheet') == 'Worksheet3'
assert get_col('qtext') == 'Question9'
assert get_col('qname') == 'question_9'
assert get_col('livestock') == False
assert get_col('crop') == False
assert get_col('trader') == True
assert get_col('greenhouse') == True
assert get_col('apiary') == True
assert get_col('handler') == True
assert get_col('wild_crop') == True
assert get_col('notes') == ''
assert get_col('field_type') == 'checkbox_list'
assert get_col('matrix') == True
assert get_col('answers') == ['one', 'two', 'three', 'four']
assert get_col('answers_name') == 'numbers'
assert get_col('help_text') == ''
assert get_col('inline_attach') == True
# row 10
get_col = gen_get_value_func(data['columns'], data['rows'][9])
assert get_col('section') == 'Section2'
assert get_col('worksheet') == 'Worksheet4'
assert get_col('qtext') == 'Question10'
assert get_col('qname') == 'question_10'
assert get_col('livestock') == True
assert get_col('crop') == False
assert get_col('trader') == True
assert get_col('greenhouse') == False
assert get_col('apiary') == False
assert get_col('handler') == True
assert get_col('wild_crop') == True
assert get_col('notes') == ''
assert get_col('field_type') == 'bool'
assert get_col('matrix') == False
assert get_col('answers') == []
assert get_col('answers_name') == ''
assert get_col('help_text') == ''
assert get_col('inline_attach') == True
# row 11
get_col = gen_get_value_func(data['columns'], data['rows'][10])
assert get_col('section') == 'Section2'
assert get_col('worksheet') == 'Worksheet4'
assert get_col('qtext') == 'Question11'
assert get_col('qname') == 'question_11'
assert get_col('livestock') == True
assert get_col('crop') == False
assert get_col('trader') == True
assert get_col('greenhouse') == False
assert get_col('apiary') == False
assert get_col('handler') == True
assert get_col('wild_crop') == True
assert get_col('notes') == ''
assert get_col('field_type') == 'text'
assert get_col('matrix') == False
assert get_col('answers') == []
assert get_col('answers_name') == ''
assert get_col('help_text') == ''
assert get_col('inline_attach') == False
# row 12
get_col = gen_get_value_func(data['columns'], data['rows'][11])
assert get_col('section') == 'Section2'
assert get_col('worksheet') == 'Worksheet4'
assert get_col('qtext') == 'Question12'
assert get_col('qname') == 'question_12'
assert get_col('livestock') == True
assert get_col('crop') == False
assert get_col('trader') == True
assert get_col('greenhouse') == False
assert get_col('apiary') == False
assert get_col('handler') == True
assert get_col('wild_crop') == True
assert get_col('notes') == ''
assert get_col('field_type') == 'select'
assert get_col('matrix') == False
assert get_col('answers') == ['a', 'b', 'c', 'd']
assert get_col('answers_name') == 'letters'
assert get_col('help_text') == ''
assert get_col('inline_attach') == False
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment