From b189923376a4a1409a476579c989df6ca451d8ba Mon Sep 17 00:00:00 2001 From: Mehrdad Afshari Date: Wed, 11 Apr 2018 14:03:27 -0700 Subject: Split binary and source distribtests for Python --- test/distrib/python/run_binary_distrib_test.sh | 18 +++++++ test/distrib/python/run_distrib_test.sh | 66 -------------------------- test/distrib/python/run_source_distrib_test.sh | 18 +++++++ test/distrib/python/test_packages.sh | 63 ++++++++++++++++++++++++ 4 files changed, 99 insertions(+), 66 deletions(-) create mode 100755 test/distrib/python/run_binary_distrib_test.sh delete mode 100755 test/distrib/python/run_distrib_test.sh create mode 100755 test/distrib/python/run_source_distrib_test.sh create mode 100755 test/distrib/python/test_packages.sh (limited to 'test/distrib') diff --git a/test/distrib/python/run_binary_distrib_test.sh b/test/distrib/python/run_binary_distrib_test.sh new file mode 100755 index 0000000000..061d041637 --- /dev/null +++ b/test/distrib/python/run_binary_distrib_test.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +# Copyright 2018 gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -ex + +"$(dirname "$0")/test_packages.sh" binary diff --git a/test/distrib/python/run_distrib_test.sh b/test/distrib/python/run_distrib_test.sh deleted file mode 100755 index a855ae3b61..0000000000 --- a/test/distrib/python/run_distrib_test.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2015 gRPC authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -ex - -cd "$(dirname "$0")" - -shopt -s nullglob - -# Pick up the source dist archive whatever its version is -SDIST_ARCHIVES=("$EXTERNAL_GIT_ROOT"/input_artifacts/grpcio-*.tar.gz) -BDIST_ARCHIVES=("$EXTERNAL_GIT_ROOT"/input_artifacts/grpcio-*.whl) -TOOLS_SDIST_ARCHIVES=("$EXTERNAL_GIT_ROOT"/input_artifacts/grpcio_tools-*.tar.gz) -TOOLS_BDIST_ARCHIVES=("$EXTERNAL_GIT_ROOT"/input_artifacts/grpcio_tools-*.whl) - -function make_virtualenv() { - virtualenv "$1" - "$1/bin/python" -m pip install --upgrade six pip - "$1/bin/python" -m pip install cython -} - -function at_least_one_installs() { - for file in "$@"; do - if python -m pip install "$file"; then - return 0 - fi - done - return -1 -} - -make_virtualenv bdist_test -make_virtualenv sdist_test - -# -# Install our distributions in order of dependencies -# - -(source bdist_test/bin/activate && at_least_one_installs "${BDIST_ARCHIVES[@]}") -(source bdist_test/bin/activate && at_least_one_installs "${TOOLS_BDIST_ARCHIVES[@]}") - -(source sdist_test/bin/activate && at_least_one_installs "${SDIST_ARCHIVES[@]}") -(source sdist_test/bin/activate && at_least_one_installs "${TOOLS_SDIST_ARCHIVES[@]}") - -# -# Test our distributions -# - -# TODO(jtattermusch): add a .proto file to the distribtest, generate python -# code from it and then use the generated code from distribtest.py -(source bdist_test/bin/activate && python -m grpc.tools.protoc --help) -(source sdist_test/bin/activate && python -m grpc.tools.protoc --help) - -(source bdist_test/bin/activate && python distribtest.py) -(source sdist_test/bin/activate && python distribtest.py) diff --git a/test/distrib/python/run_source_distrib_test.sh b/test/distrib/python/run_source_distrib_test.sh new file mode 100755 index 0000000000..f667674613 --- /dev/null +++ b/test/distrib/python/run_source_distrib_test.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +# Copyright 2018 gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -ex + +"$(dirname "$0")/test_packages.sh" source diff --git a/test/distrib/python/test_packages.sh b/test/distrib/python/test_packages.sh new file mode 100755 index 0000000000..e16eddd577 --- /dev/null +++ b/test/distrib/python/test_packages.sh @@ -0,0 +1,63 @@ +#!/usr/bin/env bash +# Copyright 2018 gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -ex + +cd "$(dirname "$0")" + +shopt -s nullglob + +if [[ "$1" == "binary" ]] +then + echo "Testing Python binary distribution" + ARCHIVES=("$EXTERNAL_GIT_ROOT"/input_artifacts/grpcio-*.whl) + TOOLS_ARCHIVES=("$EXTERNAL_GIT_ROOT"/input_artifacts/grpcio_tools-*.whl) +else + echo "Testing Python source distribution" + ARCHIVES=("$EXTERNAL_GIT_ROOT"/input_artifacts/grpcio-*.tar.gz) + TOOLS_ARCHIVES=("$EXTERNAL_GIT_ROOT"/input_artifacts/grpcio_tools-*.tar.gz) +fi + +VIRTUAL_ENV=$(mktemp -d) +virtualenv "$VIRTUAL_ENV" +PYTHON=$VIRTUAL_ENV/bin/python +"$PYTHON" -m pip install --upgrade six pip + +function at_least_one_installs() { + for file in "$@"; do + if "$PYTHON" -m pip install "$file"; then + return 0 + fi + done + return 1 +} + + +# +# Install our distributions in order of dependencies +# + +at_least_one_installs "${ARCHIVES[@]}" +at_least_one_installs "${TOOLS_ARCHIVES[@]}" + +# +# Test our distributions +# + +# TODO(jtattermusch): add a .proto file to the distribtest, generate python +# code from it and then use the generated code from distribtest.py +"$PYTHON" -m grpc.tools.protoc --help + +"$PYTHON" distribtest.py -- cgit v1.2.3