1 new commit in pytest: https://bitbucket.org/pytest-dev/pytest/commits/551a54d002fd/ Changeset: 551a54d002fd Branch: markexpr-parser User: RonnyPfannschmidt Date: 2015-04-13 17:37:34+00:00 Summary: move evaluation and caching of mark expressions to own function Affected #: 1 file
diff -r bf6f8a626afb870b19a91ff3993203e264fc2e9c -r 551a54d002fda8db9a947063ce37c14ed5edcea0 _pytest/mark.py --- a/_pytest/mark.py +++ b/_pytest/mark.py @@ -113,9 +113,15 @@ return False +def _match_expr(expr, globals_, __cache={}): + if expr not in __cache: + __cache[expr] = compile(expr, expr, 'eval') + return eval(__cache[expr], {}, globals_) + + def matchmark(colitem, markexpr): """Tries to match on any marker names, attached to the given colitem.""" - return eval(markexpr, {}, MarkMapping(colitem.keywords)) + return _match_expr(markexpr, MarkMapping(colitem.keywords)) def matchkeyword(colitem, keywordexpr): @@ -150,7 +156,7 @@ return mapping[keywordexpr] elif keywordexpr.startswith("not ") and " " not in keywordexpr[4:]: return not mapping[keywordexpr[4:]] - return eval(keywordexpr, {}, mapping) + return _match_expr(keywordexpr, mapping) def pytest_configure(config): Repository URL: https://bitbucket.org/pytest-dev/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. _______________________________________________ pytest-commit mailing list pytest-commit@python.org https://mail.python.org/mailman/listinfo/pytest-commit