This will move responsibility for running tests with pytest in the same manner as it was done with boost tests. From this commit, test.py is not responsible anymore for running python tests and relies completely on pytest. This is another step for unification of test execution. Convert skip_mode function to `pytest.mark` to be able to use to annotate the whole module instead of each test explicitly. NOTE: this is a breaking change. From this commit, several directories with tests will require a path to the file to launch the test. Affected directories test/alternator test/broadcast_tables test/cql test/cqlpy test/rest_api Changes only in framework, so no backport. This PR will increase the amount of the tests by 30 test, due to the fact that how test.py and pytest discover tests. test.py count a file as a test, and when skip used in suite.yaml it will exclude the tests from discovery completely. While the pytest count test funstion as a test and uses skip_mode mark and will discover the tests, but it will skip them during execution, hence the difference test.py output before PR: ```bash > ./test.py --mode=release rest_api/test_compaction_task rest_api/test_task_manager --list --no-gather-metrics ``` test.py output in this PR: ```bash > ./test.py --mode=release test/rest_api/test_compaction_task.py test/rest_api/test_task_manager.py --list rest_api/test_compaction_task.py::test_global_major_keyspace_compaction_task.release.1 rest_api/test_compaction_task.py::test_major_keyspace_compaction_task.release.1 rest_api/test_compaction_task.py::test_cleanup_keyspace_compaction_task.release.1 rest_api/test_compaction_task.py::test_offstrategy_keyspace_compaction_task.release.1 rest_api/test_compaction_task.py::test_rewrite_sstables_keyspace_compaction_task.release.1 rest_api/test_compaction_task.py::test_reshaping_compaction_task.release.1 rest_api/test_compaction_task.py::test_resharding_compaction_task.release.1 rest_api/test_compaction_task.py::test_regular_compaction_task.release.1 rest_api/test_compaction_task.py::test_compaction_task_abort.release.1 rest_api/test_compaction_task.py::test_major_keyspace_compaction_task_async.release.1 rest_api/test_compaction_task.py::test_cleanup_keyspace_compaction_task_async.release.1 rest_api/test_compaction_task.py::test_offstrategy_keyspace_compaction_task_async.release.1 rest_api/test_compaction_task.py::test_rewrite_sstables_keyspace_compaction_task_async.release.1 rest_api/test_compaction_task.py::test_compaction_progress[major_keyspace_compaction_task_impl_run_fail].release.1 rest_api/test_compaction_task.py::test_compaction_progress[shard_major_keyspace_compaction_task_impl_run_fail].release.1 rest_api/test_compaction_task.py::test_compaction_progress[table_major_keyspace_compaction_task_impl_run_fail].release.1 rest_api/test_task_manager.py::test_task_manager_modules.release.1 rest_api/test_task_manager.py::test_task_manager_tasks.release.1 rest_api/test_task_manager.py::test_task_manager_status_running.release.1 rest_api/test_task_manager.py::test_task_manager_status_done.release.1 rest_api/test_task_manager.py::test_task_manager_status_failed.release.1 rest_api/test_task_manager.py::test_task_manager_not_abortable.release.1 rest_api/test_task_manager.py::test_task_manager_wait.release.1 rest_api/test_task_manager.py::test_task_manager_ttl.release.1 rest_api/test_task_manager.py::test_task_manager_user_ttl.release.1 rest_api/test_task_manager.py::test_task_manager_sequence_number.release.1 rest_api/test_task_manager.py::test_task_manager_recursive_status.release.1 rest_api/test_task_manager.py::test_module_not_exists.release.1 rest_api/test_task_manager.py::test_task_folding.release.1 rest_api/test_task_manager.py::test_abort_on_unregistered_task.release.1 ``` Fixes: https://github.com/scylladb/scylladb/issues/27716 Closes scylladb/scylladb#26395 * github.com:scylladb/scylladb: test.py: fix test_vector_similarity.py docs: add directories excluded from test.py test.py: prevent file descriptors leaking test.py: capture print inside the test test.py: do not print header for collection with test.py test.py: remove not supported functionality test.py: switch of execution of several test directories by test.py runner test.py: integrate python tests to be executed with pytest runner test.py: fix test/vector_search_validator to be able to run with pytest test.py: prepare base class for migration test.py: move environment preparation to one method test.py: introduce new environment variable TESTPY_PREPARED_ENVIRONMENT
ScyllaDB Documentation
This repository contains the source files for ScyllaDB documentation.
- The
devfolder contains developer-oriented documentation related to the ScyllaDB code base. It is not published and is only available via GitHub. - All other folders and files contain user-oriented documentation related to ScyllaDB and are sources for docs.scylladb.com/manual.
To report a documentation bug or suggest an improvement, open an issue in GitHub issues for this project.
To contribute to the documentation, open a GitHub pull request.
Key Guidelines for Contributors
- The user documentation is written in reStructuredText (RST) - a plaintext markup language similar to Markdown. If you're not familiar with RST, see ScyllaDB RST Examples.
- The developer documentation is written in Markdown. See Basic Markdown Syntax for reference.
- Follow the ScyllaDB Style Guide.
To prevent the build from failing:
-
If you add a new file, ensure it's added to an appropriate toctree, for example:
.. toctree:: :maxdepth: 2 :hidden: Page X </folder1/article1> Page Y </folder1/article2> Your New Page </folder1/your-new-article> -
Make sure the link syntax is correct. See the guidelines on creating links
-
Make sure the section headings are correct. See the guidelines on creating headings Note that the markup must be at least as long as the text in the heading. For example:
---------------------- Prerequisites ----------------------
Building User Documentation
Prerequisites
- Python
- poetry
- make
See the ScyllaDB Sphinx Theme prerequisites to check which versions of the above are currently required.
Mac OS X
You must have a working Homebrew in order to install the needed tools.
You also need the standard utility make.
Check if you have these two items with the following commands:
brew help
make -h
Linux Distributions
Building the user docs should work out of the box on most Linux distributions.
Windows
Use "Bash on Ubuntu on Windows" for the same tools and capabilities as on Linux distributions.
Building the Docs
- Run
make previewin thedocs/directory to build the documentation. - Preview the built documentation locally at http://127.0.0.1:5500/.
Cleanup
You can clean up all the build products and auto-installed Python stuff with:
make pristine
Information for Contributors
If you are interested in contributing to Scylla docs, please read the Scylla open source page at http://www.scylladb.com/opensource/ and complete a Scylla contributor agreement if needed. We can only accept documentation pull requests if we have a contributor agreement on file for you.
Third-party Documentation
-
Do any copying as a separate commit. Always commit an unmodified version first and then do any editing in a separate commit.
-
We already have a copy of the Apache license in our tree, so you do not need to commit a copy of the license.
-
Include the copyright header from the source file in the edited version. If you are copying an Apache Cassandra document with no copyright header, use:
This document includes material from Apache Cassandra.
Apache Cassandra is Copyright 2009-2014 The Apache Software Foundation.