diff --git a/docker_test/8.0.1/create.sh b/docker_test/8.0.1/create.sh deleted file mode 100755 index 9869778..0000000 --- a/docker_test/8.0.1/create.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash - -VERSION=8.0.1 -IMAGE=es_client_test -RUNNAME=es_client_test8 -URL=http://127.0.0.1:9200 - -# Save original execution path -EXECPATH=$(pwd) - -# Extract the path for the script -SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" - -# Navigate to the script, regardless of whether we were there -cd $SCRIPTPATH - -# Go up one directory -cd .. - -# Find out what the last part of this directory is called -UPONE=$(pwd | awk -F\/ '{print $NF}') - -# Check if the image has been built. If not, build it. -if [[ "$(docker images -q ${IMAGE}:${VERSION} 2> /dev/null)" == "" ]]; then - echo "Docker image ${IMAGE}:${VERSION} not found. Building from Dockerfile..." - cd $SCRIPTPATH - docker build . -t ${IMAGE}:${VERSION} -fi - -### Launch the containers (plural, in 8.x) -echo -en "\rStarting ${RUNNAME} container... " -docker run -d --name ${RUNNAME} -p 9200:9200 \ --e "discovery.type=single-node" \ --e "cluster.name=local-cluster" \ --e "node.name=local" \ --e "xpack.monitoring.templates.enabled=false" \ --e "path.repo=/media" \ --e "xpack.security.enabled=false" \ -${IMAGE}:${VERSION} - -### Check to make sure the ES instances are up and running -echo -echo "Waiting for Elasticsearch instance to become available..." -echo -EXPECTED=200 -NODE="${RUNNAME} instance" -ACTUAL=0 -while [ $ACTUAL -ne $EXPECTED ]; do - ACTUAL=$(curl -o /dev/null -s -w "%{http_code}\n" $URL) - echo -en "\rHTTP status code for $NODE is: $ACTUAL" - if [ $EXPECTED -eq $ACTUAL ]; then - echo " --- $NODE is ready!" - fi - sleep 1 -done - -# Done -echo -echo "Creation complete. ${RUNNAME} container is up using image ${IMAGE}:${VERSION}" - -echo -echo "Ready to test!" diff --git a/docker_test/8.0.1/destroy.sh b/docker_test/8.0.1/destroy.sh deleted file mode 100755 index dccea12..0000000 --- a/docker_test/8.0.1/destroy.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -# Stop and remove the docker container -docker stop es_client_test8 -docker rm es_client_test8 - -echo "Cleanup complete." - diff --git a/docker_test/8.1.3/Dockerfile b/docker_test/8.1.3/Dockerfile deleted file mode 100755 index e4b3495..0000000 --- a/docker_test/8.1.3/Dockerfile +++ /dev/null @@ -1,7 +0,0 @@ -# syntax=docker/dockerfile:experimental -ARG VERSION=8.1.3 -FROM elasticsearch:${VERSION} - -COPY --chown=1000:0 small.options /usr/share/elasticsearch/config/jvm.options.d -ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] -CMD ["eswrapper"] diff --git a/docker_test/8.1.3/destroy.sh b/docker_test/8.1.3/destroy.sh deleted file mode 100755 index dccea12..0000000 --- a/docker_test/8.1.3/destroy.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -# Stop and remove the docker container -docker stop es_client_test8 -docker rm es_client_test8 - -echo "Cleanup complete." - diff --git a/docker_test/8.1.3/small.options b/docker_test/8.1.3/small.options deleted file mode 100644 index 7297a3b..0000000 --- a/docker_test/8.1.3/small.options +++ /dev/null @@ -1,2 +0,0 @@ --Xms512m --Xmx512m diff --git a/docker_test/8.3.3/Dockerfile b/docker_test/8.3.3/Dockerfile deleted file mode 100755 index 8dd8631..0000000 --- a/docker_test/8.3.3/Dockerfile +++ /dev/null @@ -1,7 +0,0 @@ -# syntax=docker/dockerfile:experimental -ARG VERSION=8.3.3 -FROM elasticsearch:${VERSION} - -COPY --chown=1000:0 small.options /usr/share/elasticsearch/config/jvm.options.d -ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] -CMD ["eswrapper"] diff --git a/docker_test/8.3.3/create.sh b/docker_test/8.3.3/create.sh deleted file mode 100755 index 5f03f6f..0000000 --- a/docker_test/8.3.3/create.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash - -VERSION=8.3.3 -IMAGE=es_client_test -RUNNAME=es_client_test8 -URL=http://127.0.0.1:9200 - -# Save original execution path -EXECPATH=$(pwd) - -# Extract the path for the script -SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" - -# Navigate to the script, regardless of whether we were there -cd $SCRIPTPATH - -# Go up one directory -cd .. - -# Find out what the last part of this directory is called -UPONE=$(pwd | awk -F\/ '{print $NF}') - -# Check if the image has been built. If not, build it. -if [[ "$(docker images -q ${IMAGE}:${VERSION} 2> /dev/null)" == "" ]]; then - echo "Docker image ${IMAGE}:${VERSION} not found. Building from Dockerfile..." - cd $SCRIPTPATH - docker build . -t ${IMAGE}:${VERSION} -fi - -### Launch the containers (plural, in 8.x) -echo -en "\rStarting ${RUNNAME} container... " -docker run -d --name ${RUNNAME} -p 9200:9200 \ --e "discovery.type=single-node" \ --e "cluster.name=local-cluster" \ --e "node.name=local" \ --e "xpack.monitoring.templates.enabled=false" \ --e "path.repo=/media" \ --e "xpack.security.enabled=false" \ -${IMAGE}:${VERSION} - -### Check to make sure the ES instances are up and running -echo -echo "Waiting for Elasticsearch instance to become available..." -echo -EXPECTED=200 -NODE="${RUNNAME} instance" -ACTUAL=0 -while [ $ACTUAL -ne $EXPECTED ]; do - ACTUAL=$(curl -o /dev/null -s -w "%{http_code}\n" $URL) - echo -en "\rHTTP status code for $NODE is: $ACTUAL" - if [ $EXPECTED -eq $ACTUAL ]; then - echo " --- $NODE is ready!" - fi - sleep 1 -done - -# Done -echo -echo "Creation complete. ${RUNNAME} container is up using image ${IMAGE}:${VERSION}" - -echo -echo "Ready to test!" diff --git a/docker_test/8.3.3/destroy.sh b/docker_test/8.3.3/destroy.sh deleted file mode 100755 index dccea12..0000000 --- a/docker_test/8.3.3/destroy.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -# Stop and remove the docker container -docker stop es_client_test8 -docker rm es_client_test8 - -echo "Cleanup complete." - diff --git a/docker_test/8.3.3/small.options b/docker_test/8.3.3/small.options deleted file mode 100644 index 7297a3b..0000000 --- a/docker_test/8.3.3/small.options +++ /dev/null @@ -1,2 +0,0 @@ --Xms512m --Xmx512m diff --git a/docker_test/8.4.3/Dockerfile b/docker_test/8.4.3/Dockerfile deleted file mode 100755 index c956dca..0000000 --- a/docker_test/8.4.3/Dockerfile +++ /dev/null @@ -1,7 +0,0 @@ -# syntax=docker/dockerfile:experimental -ARG VERSION=8.4.3 -FROM elasticsearch:${VERSION} - -COPY --chown=1000:0 small.options /usr/share/elasticsearch/config/jvm.options.d -ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] -CMD ["eswrapper"] diff --git a/docker_test/8.4.3/create.sh b/docker_test/8.4.3/create.sh deleted file mode 100755 index 2cf9b73..0000000 --- a/docker_test/8.4.3/create.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash - -VERSION=8.4.3 -IMAGE=es_client_test -RUNNAME=es_client_test8 -URL=http://127.0.0.1:9200 - -# Save original execution path -EXECPATH=$(pwd) - -# Extract the path for the script -SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" - -# Navigate to the script, regardless of whether we were there -cd $SCRIPTPATH - -# Go up one directory -cd .. - -# Find out what the last part of this directory is called -UPONE=$(pwd | awk -F\/ '{print $NF}') - -# Check if the image has been built. If not, build it. -if [[ "$(docker images -q ${IMAGE}:${VERSION} 2> /dev/null)" == "" ]]; then - echo "Docker image ${IMAGE}:${VERSION} not found. Building from Dockerfile..." - cd $SCRIPTPATH - docker build . -t ${IMAGE}:${VERSION} -fi - -### Launch the containers (plural, in 8.x) -echo -en "\rStarting ${RUNNAME} container... " -docker run -d --name ${RUNNAME} -p 9200:9200 \ --e "discovery.type=single-node" \ --e "cluster.name=local-cluster" \ --e "node.name=local" \ --e "xpack.monitoring.templates.enabled=false" \ --e "path.repo=/media" \ --e "xpack.security.enabled=false" \ -${IMAGE}:${VERSION} - -### Check to make sure the ES instances are up and running -echo -echo "Waiting for Elasticsearch instance to become available..." -echo -EXPECTED=200 -NODE="${RUNNAME} instance" -ACTUAL=0 -while [ $ACTUAL -ne $EXPECTED ]; do - ACTUAL=$(curl -o /dev/null -s -w "%{http_code}\n" $URL) - echo -en "\rHTTP status code for $NODE is: $ACTUAL" - if [ $EXPECTED -eq $ACTUAL ]; then - echo " --- $NODE is ready!" - fi - sleep 1 -done - -# Done -echo -echo "Creation complete. ${RUNNAME} container is up using image ${IMAGE}:${VERSION}" - -echo -echo "Ready to test!" diff --git a/docker_test/8.4.3/destroy.sh b/docker_test/8.4.3/destroy.sh deleted file mode 100755 index dccea12..0000000 --- a/docker_test/8.4.3/destroy.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -# Stop and remove the docker container -docker stop es_client_test8 -docker rm es_client_test8 - -echo "Cleanup complete." - diff --git a/docker_test/8.4.3/small.options b/docker_test/8.4.3/small.options deleted file mode 100644 index 7297a3b..0000000 --- a/docker_test/8.4.3/small.options +++ /dev/null @@ -1,2 +0,0 @@ --Xms512m --Xmx512m diff --git a/docker_test/8.5.3/Dockerfile b/docker_test/8.5.3/Dockerfile deleted file mode 100755 index 9e787df..0000000 --- a/docker_test/8.5.3/Dockerfile +++ /dev/null @@ -1,7 +0,0 @@ -# syntax=docker/dockerfile:experimental -ARG VERSION=8.5.3 -FROM elasticsearch:${VERSION} - -COPY --chown=1000:0 small.options /usr/share/elasticsearch/config/jvm.options.d -ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] -CMD ["eswrapper"] diff --git a/docker_test/8.5.3/create.sh b/docker_test/8.5.3/create.sh deleted file mode 100755 index 51b00f9..0000000 --- a/docker_test/8.5.3/create.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash - -VERSION=8.5.3 -IMAGE=es_client_test -RUNNAME=es_client_test8 -URL=http://127.0.0.1:9200 - -# Save original execution path -EXECPATH=$(pwd) - -# Extract the path for the script -SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" - -# Navigate to the script, regardless of whether we were there -cd $SCRIPTPATH - -# Go up one directory -cd .. - -# Find out what the last part of this directory is called -UPONE=$(pwd | awk -F\/ '{print $NF}') - -# Check if the image has been built. If not, build it. -if [[ "$(docker images -q ${IMAGE}:${VERSION} 2> /dev/null)" == "" ]]; then - echo "Docker image ${IMAGE}:${VERSION} not found. Building from Dockerfile..." - cd $SCRIPTPATH - docker build . -t ${IMAGE}:${VERSION} -fi - -### Launch the containers (plural, in 8.x) -echo -en "\rStarting ${RUNNAME} container... " -docker run -d --name ${RUNNAME} -p 9200:9200 \ --e "discovery.type=single-node" \ --e "cluster.name=local-cluster" \ --e "node.name=local" \ --e "xpack.monitoring.templates.enabled=false" \ --e "path.repo=/media" \ --e "xpack.security.enabled=false" \ -${IMAGE}:${VERSION} - -### Check to make sure the ES instances are up and running -echo -echo "Waiting for Elasticsearch instance to become available..." -echo -EXPECTED=200 -NODE="${RUNNAME} instance" -ACTUAL=0 -while [ $ACTUAL -ne $EXPECTED ]; do - ACTUAL=$(curl -o /dev/null -s -w "%{http_code}\n" $URL) - echo -en "\rHTTP status code for $NODE is: $ACTUAL" - if [ $EXPECTED -eq $ACTUAL ]; then - echo " --- $NODE is ready!" - fi - sleep 1 -done - -# Done -echo -echo "Creation complete. ${RUNNAME} container is up using image ${IMAGE}:${VERSION}" - -echo -echo "Ready to test!" diff --git a/docker_test/8.5.3/destroy.sh b/docker_test/8.5.3/destroy.sh deleted file mode 100755 index dccea12..0000000 --- a/docker_test/8.5.3/destroy.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -# Stop and remove the docker container -docker stop es_client_test8 -docker rm es_client_test8 - -echo "Cleanup complete." - diff --git a/docker_test/8.5.3/small.options b/docker_test/8.5.3/small.options deleted file mode 100644 index 7297a3b..0000000 --- a/docker_test/8.5.3/small.options +++ /dev/null @@ -1,2 +0,0 @@ --Xms512m --Xmx512m diff --git a/docker_test/8.6.0/Dockerfile b/docker_test/8.6.0/Dockerfile deleted file mode 100755 index 8ffc3a1..0000000 --- a/docker_test/8.6.0/Dockerfile +++ /dev/null @@ -1,7 +0,0 @@ -# syntax=docker/dockerfile:experimental -ARG VERSION=8.6.0 -FROM elasticsearch:${VERSION} - -COPY --chown=1000:0 small.options /usr/share/elasticsearch/config/jvm.options.d -ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] -CMD ["eswrapper"] diff --git a/docker_test/8.6.0/create.sh b/docker_test/8.6.0/create.sh deleted file mode 100755 index 3a3015c..0000000 --- a/docker_test/8.6.0/create.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash - -VERSION=8.6.0 -IMAGE=es_client_test -RUNNAME=es_client_test8 -URL=http://127.0.0.1:9200 - -# Save original execution path -EXECPATH=$(pwd) - -# Extract the path for the script -SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" - -# Navigate to the script, regardless of whether we were there -cd $SCRIPTPATH - -# Go up one directory -cd .. - -# Find out what the last part of this directory is called -UPONE=$(pwd | awk -F\/ '{print $NF}') - -# Check if the image has been built. If not, build it. -if [[ "$(docker images -q ${IMAGE}:${VERSION} 2> /dev/null)" == "" ]]; then - echo "Docker image ${IMAGE}:${VERSION} not found. Building from Dockerfile..." - cd $SCRIPTPATH - docker build . -t ${IMAGE}:${VERSION} -fi - -### Launch the containers (plural, in 8.x) -echo -en "\rStarting ${RUNNAME} container... " -docker run -d --name ${RUNNAME} -p 9200:9200 \ --e "discovery.type=single-node" \ --e "cluster.name=local-cluster" \ --e "node.name=local" \ --e "xpack.monitoring.templates.enabled=false" \ --e "path.repo=/media" \ --e "xpack.security.enabled=false" \ -${IMAGE}:${VERSION} - -### Check to make sure the ES instances are up and running -echo -echo "Waiting for Elasticsearch instance to become available..." -echo -EXPECTED=200 -NODE="${RUNNAME} instance" -ACTUAL=0 -while [ $ACTUAL -ne $EXPECTED ]; do - ACTUAL=$(curl -o /dev/null -s -w "%{http_code}\n" $URL) - echo -en "\rHTTP status code for $NODE is: $ACTUAL" - if [ $EXPECTED -eq $ACTUAL ]; then - echo " --- $NODE is ready!" - fi - sleep 1 -done - -# Done -echo -echo "Creation complete. ${RUNNAME} container is up using image ${IMAGE}:${VERSION}" - -echo -echo "Ready to test!" diff --git a/docker_test/8.6.0/destroy.sh b/docker_test/8.6.0/destroy.sh deleted file mode 100755 index dccea12..0000000 --- a/docker_test/8.6.0/destroy.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -# Stop and remove the docker container -docker stop es_client_test8 -docker rm es_client_test8 - -echo "Cleanup complete." - diff --git a/docker_test/8.6.0/small.options b/docker_test/8.6.0/small.options deleted file mode 100644 index 7297a3b..0000000 --- a/docker_test/8.6.0/small.options +++ /dev/null @@ -1,2 +0,0 @@ --Xms512m --Xmx512m diff --git a/docker_test/8.0.1/Dockerfile b/docker_test/scripts/Dockerfile.tmpl similarity index 90% rename from docker_test/8.0.1/Dockerfile rename to docker_test/scripts/Dockerfile.tmpl index 90fb8a0..7675629 100755 --- a/docker_test/8.0.1/Dockerfile +++ b/docker_test/scripts/Dockerfile.tmpl @@ -1,5 +1,5 @@ # syntax=docker/dockerfile:experimental -ARG VERSION=8.0.1 +ARG VERSION=ES_VERSION FROM elasticsearch:${VERSION} COPY --chown=1000:0 small.options /usr/share/elasticsearch/config/jvm.options.d diff --git a/docker_test/8.1.3/create.sh b/docker_test/scripts/create.sh similarity index 78% rename from docker_test/8.1.3/create.sh rename to docker_test/scripts/create.sh index 5ef1d53..21e6f36 100755 --- a/docker_test/8.1.3/create.sh +++ b/docker_test/scripts/create.sh @@ -1,9 +1,18 @@ #!/bin/bash -VERSION=8.1.3 IMAGE=es_client_test RUNNAME=es_client_test8 -URL=http://127.0.0.1:9200 +LOCAL_PORT=9200 +URL=http://127.0.0.1:${LOCAL_PORT} + +if [ "x$1" == "x" ]; then + echo "Error! No Elasticsearch version provided." + echo "VERSION must be in Semver format, e.g. X.Y.Z, 8.6.0" + echo "USAGE: $0 VERSION" + exit 1 +fi + +VERSION=$1 # Save original execution path EXECPATH=$(pwd) @@ -24,12 +33,14 @@ UPONE=$(pwd | awk -F\/ '{print $NF}') if [[ "$(docker images -q ${IMAGE}:${VERSION} 2> /dev/null)" == "" ]]; then echo "Docker image ${IMAGE}:${VERSION} not found. Building from Dockerfile..." cd $SCRIPTPATH + # Create a Dockerfile from the template + cat Dockerfile.tmpl | sed -e "s/ES_VERSION/${VERSION}/" > Dockerfile docker build . -t ${IMAGE}:${VERSION} fi ### Launch the containers (plural, in 8.x) echo -en "\rStarting ${RUNNAME} container... " -docker run -d --name ${RUNNAME} -p 9200:9200 \ +docker run -d --name ${RUNNAME} -p ${LOCAL_PORT}:9200 \ -e "discovery.type=single-node" \ -e "cluster.name=local-cluster" \ -e "node.name=local" \ diff --git a/docker_test/scripts/destroy.sh b/docker_test/scripts/destroy.sh new file mode 100755 index 0000000..db91024 --- /dev/null +++ b/docker_test/scripts/destroy.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# Stop and remove the docker container +docker stop es_client_test8 +docker rm es_client_test8 + +### Now begins the Dockerfile cleanup phase + +# Save original execution path +EXECPATH=$(pwd) + +# Extract the path for the script +SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + +# Navigate to the script, regardless of whether we were there +cd $SCRIPTPATH + +# Remove the created Dockerfile +rm -f Dockerfile + +echo "Cleanup complete." + diff --git a/docker_test/8.0.1/small.options b/docker_test/scripts/small.options similarity index 100% rename from docker_test/8.0.1/small.options rename to docker_test/scripts/small.options diff --git a/docs/Changelog.rst b/docs/Changelog.rst index 4432399..2f8dd26 100644 --- a/docs/Changelog.rst +++ b/docs/Changelog.rst @@ -3,6 +3,21 @@ Changelog ========= +8.6.0.post3 (19 January 2023) +----------------------------- + +**Changes** + + * Improve ``helpers.utils`` function ``verify_url_schema`` ability to catch malformed + URLs. Added tests to verify functionality. + * Improve Docker test scripts. Now there's only one set of scripts in + ``docker_test/scripts``. ``create.sh`` requires a semver version of Elasticsearch + at the command-line, and it will build and launch a docker image based on that + version. For example, ``./create.sh 8.6.0`` will create a test image. Likewise, + ``destroy.sh`` will clean it up afterwards, and also remove the ``Dockerfile`` + which is created from the ``Dockerfile.tmpl`` template. + + 8.6.0.post2 (18 January 2023) ----------------------------- diff --git a/es_client/helpers/utils.py b/es_client/helpers/utils.py index 401f25d..9149336 100644 --- a/es_client/helpers/utils.py +++ b/es_client/helpers/utils.py @@ -122,15 +122,22 @@ def single_constructor(loader, node): def verify_url_schema(url): """Ensure that a valid URL schema (HTTP[S]://URL:PORT) is used""" - parts = url.split(':') + parts = url.lower().split(':') + errmsg = f'URL Schema invalid for {url}' if len(parts) < 3: # We do not have a port - if parts[0].lower() == 'https': + if parts[0] == 'https': port = '443' - else: + elif parts[0] == 'http': port = '80' - else: + else: + raise ConfigurationError(errmsg) + elif len(parts) == 3: + if (parts[0] != 'http') and (parts[0] != 'https'): + raise ConfigurationError(errmsg) port = parts[2] + else: + raise ConfigurationError(errmsg) return parts[0] + ':' + parts[1] + ':' + port def get_version(client): diff --git a/es_client/version.py b/es_client/version.py index 66ea920..646e622 100644 --- a/es_client/version.py +++ b/es_client/version.py @@ -1 +1 @@ -__version__ = '8.6.0.post2' +__version__ = '8.6.0.post3' diff --git a/tests/unit/test_helpers_utils.py b/tests/unit/test_helpers_utils.py index 3f3ec06..4e7587c 100644 --- a/tests/unit/test_helpers_utils.py +++ b/tests/unit/test_helpers_utils.py @@ -159,6 +159,21 @@ def test_https_schema_no_port(self): https_port = '443' url = 'https://127.0.0.1' assert verify_url_schema(url) == 'https://127.0.0.1' + ':' + https_port + def test_bad_schema_no_port(self): + """A URL starting with other than http or https raises an exception w/o port""" + url = 'abcd://127.0.0.1' + with pytest.raises(ConfigurationError): + verify_url_schema(url) + def test_bad_schema_with_port(self): + """A URL starting with other than http or https raises an exception w/port""" + url = 'abcd://127.0.0.1:1234' + with pytest.raises(ConfigurationError): + verify_url_schema(url) + def test_bad_schema_too_many_colons(self): + """An invalid URL with too many colons raises an exception""" + url = 'http://127.0.0.1:1234:5678' + with pytest.raises(ConfigurationError): + verify_url_schema(url) class TestGetVersion: """Test the get_version function"""