Jarek Potiuk created CASSANDRA-18369:
----------------------------------------
Summary: Importing cassandra driver causes modern pytest to fail
in certain circumstances
Key: CASSANDRA-18369
URL: https://issues.apache.org/jira/browse/CASSANDRA-18369
Project: Cassandra
Issue Type: Bug
Reporter: Jarek Potiuk
When collecting on running test without exclusion on Pytest test name,
importing cassandra driver causes a very strangely looking error:
{quote}# from cassandra.cluster import Cluster
# cassandra/cluster.py:48: in init cassandra.cluster
# ???
# cassandra/connection.py:40: in init cassandra.connection
# ???
# cassandra/protocol.py:698: in genexpr
# ???
# cassandra/protocol.py:698: in genexpr
# ???
# E KeyError: '@py_builtins'{quote}
This happened for Apache Airflow when we wanted to enable pytest collection to
include all files, rather than only "test_*.py" files, because we found that
there were at least few modules in airlfow that did not start with "test".
It turned out that the culprit was Assert Rewrite done by pytest that tried to
rewrite "type_codes.py" module of Cassandra.
One of the ways to avoid the problem is to disable assert rewrite by
"–assert=plain". However then asserts are not as useful. Better solution (PR
is coming) is to add PYTEST_DONT_REWRITE in the docstring:
https://docs.pytest.org/en/latest/how-to/assert.html#disabling-assert-rewriting
For now we are mitigating that issue in Airflow by manually patching cassandra
code, however better solution will be to add the PYTEST_DONT_REWRITE directive
directly in Cassandra's Python driver's repository.
Fix is coming.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]