def test_lineno_on_error_reporting(empty_eval_context): excel_formula = ExcelFormula('') excel_formula._python_code = 'X' excel_formula.lineno = 6 excel_formula.filename = 'a_file' msg = 'File "a_file", line 6,' with pytest.raises(UnknownFunction, match=msg): empty_eval_context(excel_formula) excel_formula._python_code = '(x)' excel_formula._compiled_python = None excel_formula._marshalled_python = None excel_formula.compiled_lambda = None excel_formula.lineno = 60 with pytest.raises(UnknownFunction, match='File "a_file", line 60,'): empty_eval_context(excel_formula)
def test_lineno_on_error_reporting(): eval_ctx = ExcelFormula.build_eval_context(None, None) excel_formula = ExcelFormula('') excel_formula._python_code = 'X' excel_formula.lineno = 6 excel_formula.filename = 'a_file' with pytest.raises(FormulaEvalError, match='File "a_file", line 6'): eval_ctx(excel_formula) excel_formula._python_code = '(x)' excel_formula._compiled_python = None excel_formula._marshalled_python = None excel_formula.compiled_lambda = None excel_formula.lineno = 60 with pytest.raises(FormulaEvalError, match=', line 60,'): eval_ctx(excel_formula)
def test_str(): excel_formula = ExcelFormula('=E54-E48') assert '=E54-E48' == str(excel_formula) assert '_C_("E54") - _C_("E48")' == excel_formula.python_code excel_formula.base_formula = None assert '_C_("E54") - _C_("E48")' == str(excel_formula) excel_formula._ast = None excel_formula._rpn = None excel_formula._python_code = None assert '' == str(excel_formula)
def test_compiled_python_error(): formula = ExcelFormula('=1 + 2') formula._python_code = 'this will be a syntax error' with pytest.raises(FormulaParserError, match='Failed to compile expression'): formula.compiled_python