Files
deb-python-oauth2client/scripts/run_system_tests.sh
Danny Hermes 381aac7ffa Final iteration to make system tests pass.
Two main things happened here:

1. Manually encrypted files instead of using `travis encrypt-file`
2. Removed OAUTH2CLIENT_TEST_USER_KEY_PATH fallback.

The first was because `travis encrypt-file` was failing mysteriously.
To make up, I ran

    openssl enc -d -a -md sha1 -aes-256-cbc -nosalt -p

and typed random noise into the keyboard to create a candidate KEY and
IV (H/T http://superuser.com/a/471524). After doing this, they were set
via

    travis env set OAUTH2CLIENT_KEY "..KEY.." --repo "google/oauth2client"
    travis env set OAUTH2CLIENT_IV "..IV.." --repo "google/oauth2client"

To actually do the encryption locally:

    openssl aes-256-cbc -K "..KEY.." \
        -iv "..IV.." \
        -in file-to-encrypt \
        -out file-to-encrypt.enc -e

As for the second change, OAUTH2CLIENT_TEST_USER_KEY_PATH was previously
allowed to fallback to client._get_well_known_file() in system tests, but this
is a problem since that function throws an OSError when the directory does not
exist. (It does not exist on Travis.)
2015-05-03 14:44:00 -07:00

49 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# Copyright 2015 Google Inc. All rights reserved.
#
# 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 -ev
# If we're on Travis, we need to set up the environment.
if [[ "${TRAVIS}" == "true" ]]; then
# If merging to master and not a pull request, run system test.
if [[ "${TRAVIS_BRANCH}" == "master" ]] && \
[[ "${TRAVIS_PULL_REQUEST}" == "false" ]]; then
echo "Running in Travis during merge, decrypting stored key file."
# Convert encrypted JSON key file into decrypted file to be used.
openssl aes-256-cbc -K ${OAUTH2CLIENT_KEY} \
-iv ${OAUTH2CLIENT_IV} \
-in tests/data/key.json.enc \
-out ${OAUTH2CLIENT_TEST_JSON_KEY_PATH} -d
# Convert encrypted P12 key file into decrypted file to be used.
openssl aes-256-cbc -K ${OAUTH2CLIENT_KEY} \
-iv ${OAUTH2CLIENT_IV} \
-in tests/data/key.p12.enc \
-out ${OAUTH2CLIENT_TEST_P12_KEY_PATH} -d
# Convert encrypted User JSON key file into decrypted file to be used.
openssl aes-256-cbc -K ${OAUTH2CLIENT_KEY} \
-iv ${OAUTH2CLIENT_IV} \
-in tests/data/user-key.json.enc \
-out ${OAUTH2CLIENT_TEST_USER_KEY_PATH} -d
else
echo "Running in Travis during non-merge to master, doing nothing."
exit
fi
fi
# Run the system tests for each tested package.
python scripts/run_system_tests.py