Сейчас заголовок колонки проверяется на полное соответствие значению Column.header.
Необходимо добавить возможность указания функции для валидации заголовка.
Пример1:
def test_validate_headers(column):
class Parser(BaseXLSXParser):
columns = [
Column('column_name', header='№'),
]
xlsx_file = xlsx_file_factory(header=['№'], data=[])
parser = Parser(file_path=xlsx_file.file)
parser()
assert parser.has_errors is False
def test_validate_headers_with_validator(column):
class Parser(BaseXLSXParser):
columns = [
Column('column_name', header='№', header_validator=lambda x: x in ['№', 'Номер', '№пп']),
]
xlsx_file = xlsx_file_factory(header=['№пп'], data=[])
parser = Parser(file_path=xlsx_file.file)
parser()
assert parser.has_errors is False
def test_validate_headers_error(header):
class Parser(BaseXLSXParser):
columns = [
Column('column_name', header='№'),
]
xlsx_file = xlsx_file_factory(header=['fail header'], data=[])
parser = Parser(file_path=xlsx_file.file)
parser()
assert parser.has_errors is True
assert parser.errors == (
"Incorrect column names in the file. "
"Columns in file: ['fail header']. "
"Expected columns: ['№']."
)
def test_validate_headers_with_validator_error(header):
class Parser(BaseXLSXParser):
columns = [
Column('column_name', header='№', header_validator=lambda x: x in ['№', 'Номер', '№пп']),
]
xlsx_file = xlsx_file_factory(header=['fail header'], data=[])
parser = Parser(file_path=xlsx_file.file)
parser()
assert parser.has_errors is True
assert parser.errors == (
"Incorrect column names in the file. "
"Columns in file: ['fail header']. "
"Expected columns: ['№']."
)
Сейчас заголовок колонки проверяется на полное соответствие значению Column.header. Необходимо добавить возможность указания функции для валидации заголовка.
Пример1: