cassandra/pylib
Mick Semb Wever f7c11bdcd4
Standalone Jenkinsfile
– ensure test file paths, and their suite names are unique (the latter was broken for cqlshlib and python dtests)
 – removal of properties and system-out in test xml happens in CassandraXMLJUnitResultFormatter
 – new jenkins agent labels and introduce agents sizes
 - ci_summary.html generation script, ref work submitted in apache/cassandra-builds#99
 – fix for stress-test and fqltool-test running on small
 - ant generate-test-report is limited to only running on individual test types (ci_parser.py provides ci_summary.html for the overview now)
 - each cell has a single retry, and the retry will happen on a different agent
 - on ci-cassandra the summary stage happens on the builtin, bc copyArtifacts on 15k+ files takes many hours otherwise
 - test-burn only needs two splits
 - dependency-check is disabled from the lint target until CASSANDRA-19213
 - add $DEBUG env var to in-tree scripts, turns on bash debug
 - fix FBUtilities' handling of gcp cos_containerd (kernel version comes with a trailing '+' character)

 patch by Aleks Volochnev, Mick Semb Wever; reviewed by Aleksandr Volochnev, Josh McKenzie, Maxim Muzafarov, Stefan Miklosovic for CASSANDRA-18594

Co-authored-by: Aleksandr Volochnev <a.volochnev@gmail.com>
Co-authored-by: Mick Semb Wever <mck@apache.org>
Co-authored-by: Josh McKenzie <jmckenzie@apache.org>
Co-authored-by: Artem Chekunov <artem.v.chekunov@gmail.com>
2024-04-04 11:56:36 +02:00
..
cqlshlib Deprecate Python 3.7 and earlier, but allow cqlsh to run with Python 3.6-3.11 2024-03-19 23:41:47 -05:00
Dockerfile.ubuntu.py3 Upgrade Python driver to 3.29.0 2024-01-19 17:14:57 +00:00
Dockerfile.ubuntu.py38 Merge branch 'cassandra-3.11' into cassandra-4.0 2023-08-31 22:39:56 +02:00
Dockerfile.ubuntu.py311 Upgrade Python driver to 3.29.0 2024-01-19 17:14:57 +00:00
README.asc Upgrade Python driver to 3.29.0 2024-01-19 17:14:57 +00:00
cassandra-cqlsh-tests.sh Standalone Jenkinsfile 2024-04-04 11:56:36 +02:00
requirements.txt Upgrade Python driver to 3.29.0 2024-01-19 17:14:57 +00:00
setup.py Change shebangs of Python scripts to resolve Python 3 from env command 2022-11-18 14:38:03 +01:00

README.asc

== Overview

This directory contains code primarily for cqlsh. cqlsh uses cqlshlib in this directory.

== Requirements
. Python 3.8-3.11 (for cqlsh)
. virtualenv
. Docker (optional)

== Running tests

The following environment variables can be configured for the database connection -

. CQL_TEST_HOST, default 127.0.0.1
. CQL_TEST_PORT, default 9042
. CQL_TEST_USER, default 'cassandra'
. CQL_TEST_PWD

You can run tests with a local Cassandra server with:

  $ pytest
  
You can run tests on the python style compliance issues with: 

  $ pycodestyle --ignore E501,E402,E731,W503 **/*.py

In order to run tests in a virtual environment for cqlshlib, run cassandra-cqlsh-tests.sh in this directory. It will
automatically setup a virtualenv with the appropriate version of Python and run tests inside it.

There are Dockerfiles that can be used to test whether cqlsh works with a default, barebones
Python installation. Assuming Cassandra's source is checked out at `$CASSANDRA_DIR`. To test, first
build the Docker image containing the barebones Python installation -

  $ docker build . --file Dockerfile.ubuntu.py3 -t ubuntu-lts-py3

Next, run cqlsh inside the newly built image -

  $ docker run -v $CASSANDRA_DIR:/code -it ubuntu-lts-py3:latest /code/bin/cqlsh host.docker.internal

If `host.docker.internal` isn't supported, then you can use `--net="host"` with `docker run`:

  $ docker run --net="host" -v $CASSANDRA_DIR:/code -it ubuntu-lts-py3:latest /code/bin/cqlsh

This will try to spawn a cqlsh instance inside the Docker container running Ubuntu LTS (18.04)
with minimal Python installation. It will try to connect to the Cassandra instance running on the
Docker host at port 9042. If you have Cassandra running elsewhere, replace host.docker.internal
with the IP / hostname as usual. Please ensure that the IP / host is accessible from _within_ the
Docker container.