scylladb / python-driver

ScyllaDB Python Driver, originally DataStax Python Driver for Apache Cassandra
https://python-driver.docs.scylladb.com
Apache License 2.0
70 stars 42 forks source link

CI: add integration tests with python 3.13 #336

Closed fruch closed 1 week ago

fruch commented 2 months ago

since we want to start test the alpha/beta version of python refactoring a bit the integration test workflow

the action for pyenv we are using isn't really getting updates too much, and trying to switch back to the offical use python action that can now have prerelease python versions

also move to test newer scylla version which are not depended on python2 anymore, which was the main reason for using pyenv

fruch commented 1 month ago

7 failing tests, cause we move to test scylla 5.4:

2024-07-01T20:50:07.3045371Z FAILED tests/integration/standard/test_cluster.py::ClusterTests::test_invalid_protocol_negotation
2024-07-01T20:50:07.3049333Z FAILED tests/integration/standard/test_metadata.py::SchemaMetadataTests::test_collection_indexes - AssertionError: '(full(b))' not found in "CREATE TABLE schemametadatatests.test_collection_indexes (\n    a int PRIMARY KEY,\n    b frozen<map<text, text>>\n) WITH bloom_filter_fp_chance = 0.01\n    AND caching = {'keys': 'ALL', 'rows_per_partition': 'ALL'}\n    AND comment = ''\n    AND compaction = {'class': 'SizeTieredCompactionStrategy'}\n    AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}\n    AND crc_check_chance = 1.0\n    AND dclocal_read_repair_chance = 0.0\n    AND default_time_to_live = 0\n    AND gc_grace_seconds = 864000\n    AND max_index_interval = 2048\n    AND memtable_flush_period_in_ms = 0\n    AND min_index_interval = 128\n    AND read_repair_chance = 0.0\n    AND speculative_retry = '99.0PERCENTILE';\nCREATE INDEX index3 ON schemametadatatests.test_collection_indexes (b);"
2024-07-01T20:50:07.3049675Z FAILED tests/integration/standard/test_metadata.py::TestCodeCoverage::test_case_sensitivity
2024-07-01T20:50:07.3051181Z FAILED tests/integration/cqlengine/management/test_compaction_settings.py::AlterTableTest::test_compaction_not_altered_without_changes_sizetiered - cassandra.protocol.ConfigurationException: <Error from server: code=2300 [Query invalid because of configuration issue] message="bucket_low value (10) must be between 0.0 and 1.0">
2024-07-01T20:50:07.3051800Z FAILED tests/integration/cqlengine/management/test_management.py::IndexTests::test_sync_indexed_set - AssertionError: unexpectedly None
2024-07-01T20:50:07.3053155Z FAILED tests/integration/cqlengine/query/test_queryset.py::TestQuerySetOrdering::test_order_by_success_case - cassandra.InvalidRequest: Error from server: code=2200 [Invalid query] message="Order by currently only supports the ordering of columns following their declared order in the PRIMARY KEY"
2024-07-01T20:50:07.3054585Z FAILED tests/integration/cqlengine/test_connections.py::TestQuerySetOrderingNoDefault::test_order_by_success_case - cassandra.InvalidRequest: Error from server: code=2200 [Invalid query] message="Order by currently only supports the ordering of columns following their declared order in the PRIMARY KEY"
2024-07-01T20:50:07.3054909Z = 7 failed, 895 passed, 118 skipped, 7 xfailed, 508 warnings in 1492.89s (0:24:52) =

if we'll move to scylla 6.0, it would be worse.

the driver matrix should have helped knowing about those, but matrix isn't running cqlengine tests... we introduced it here in the repo. but not on the matrix, and most of those failures are in cqlengine.

sylwiaszunejko commented 1 month ago

FYI tests/integration/standard/test_metadata.py::SchemaMetadataTests::test_collection_indexes failure is due to the bug in scylla https://github.com/scylladb/scylladb/issues/19278

fruch commented 1 month ago

FYI tests/integration/standard/test_metadata.py::SchemaMetadataTests::test_collection_indexes failure is due to the bug in scylla https://github.com/scylladb/scylladb/issues/19278

Thanks, we should mark it in the code to be skipped somehow

cqlengine issues, I hate it, but we have customers using that, and we need to attend to it somehow.

fruch commented 1 month ago

I've found that 2 of the test are XPASS, and we are in strict mode, hence this is failing.

seems like those two now works from version 5.2 and up

fruch commented 1 month ago

I've handle all the issue beside

fruch commented 1 month ago

@Lorak-mmk care to give it a look

The only failure we have here is one integration run being stuck It's not new, we see it since we started running on multiple event loops Still not sure what the cause

We have here changes that moves us to using scylla 5.4 And stop using pyenv in CI

Lorak-mmk commented 1 week ago

@dkropachev I didn't yet read your new PR ( https://github.com/scylladb/python-driver/pull/363 ). Is there something that this PR does that yours doesn't? If not, can this be closed as succeeded by https://github.com/scylladb/python-driver/pull/363 >

dkropachev commented 1 week ago

Closed in favor of https://github.com/scylladb/python-driver/pull/363