def test_invalid_xpath_expr_by_build(expr): extractor = XPathExtractor(expr) assert not extractor.built with pytest.raises(ExprError) as catch: extractor.build() assert not extractor.built exc = catch.value assert exc.extractor is extractor assert isinstance(exc.exc, XPathError) assert re.match(r"ExprError with .+? raised by .+? extracting", str(exc))
def test_invalid_xpath_expr_by_XPathEvalError_from_extract(element, expr): extractor = XPathExtractor(expr) assert not extractor.built extractor.build() assert extractor.built with pytest.raises(ExprError) as catch: extractor.extract(element) exc = catch.value assert exc.extractor is extractor from lxml.etree import XPathEvalError assert isinstance(exc.exc, XPathEvalError) assert re.match(r"ExprError with .+? raised by .+? extracting", str(exc))