Skip to content

Commit

Permalink
Factor integration test into dedicated bash script
Browse files Browse the repository at this point in the history
  • Loading branch information
hydrosquall committed Oct 16, 2018
1 parent 721575d commit ec93f19
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 9 deletions.
14 changes: 5 additions & 9 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,22 @@ services:
env:
global:
- DOCKER_COMPOSE_VERSION=1.9.0
- AIRFLOW_SLEEP_DURATION=60 # Number of seconds to wait for airflow to start
- METRICS_ENDPOINT=http://localhost:8080/admin/metrics/
- CURL_FLAGS=--show-error --fail

- INTEGRATION_TEST_SCRIPT=test_metrics_up.sh

before_install:
- sudo rm /usr/local/bin/docker-compose
- curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
- chmod +x docker-compose
- sudo mv docker-compose /usr/local/bin
- chmod +x tests/test_metrics_up.sh

script:

# Test Airflow 1.8 with Python 2
- cd tests/airflow1.8-py2 && docker-compose up -d
- sleep ${AIRFLOW_SLEEP_DURATION}
- curl ${CURL_FLAGS} ${METRICS_ENDPOINT}
- ../${INTEGRATION_TEST_SCRIPT}
- docker-compose down

# Test Airflow 1.9 with Python 3
- cd ../../tests/airflow1.9-py3 && docker-compose up -d
- sleep ${AIRFLOW_SLEEP_DURATION}
- curl ${CURL_FLAGS} ${METRICS_ENDPOINT}
- ../${INTEGRATION_TEST_SCRIPT}
- docker-compose down
16 changes: 16 additions & 0 deletions tests/test_metrics_up.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/usr/bin/env bash
# Integration test that
# 1. Waits for Airflow to come up within 60 seconds
# 2. Ensures the Metrics endpoint returned a valid response
# Depends on Curl

AIRFLOW_SLEEP_DURATION=60 # Number of seconds to wait for airflow to start
METRICS_ENDPOINT="http://localhost:8080/admin/metrics/"

# Return nonzero status code if endpoint does not return 200
CURL_FLAGS="--show-error --fail"

sleep ${AIRFLOW_SLEEP_DURATION}
curl ${CURL_FLAGS} ${METRICS_ENDPOINT}

# TODO: validate the contents of the CURLed data

0 comments on commit ec93f19

Please sign in to comment.