| == Overview |
| |
| This directory contains code primarily for cqlsh. cqlsh uses cqlshlib in this directory. |
| |
| == Requirements |
| . Python 3.6+ (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 simply by - |
| |
| $ pytest |
| |
| 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. |