 d58427d317
			
		
	
	d58427d317
	
	
	
		
			
			Instead of requiring all the complicated venv management logic that tox already provides just use tox directly instead. This maps more closely to what jenkins does, and how most other python development occurs (which does not typically rely on custom venv scripts). Change-Id: Iff6cf0a7eb24ddd2ef65ddd723d0e4cb803b9bb9
		
			
				
	
	
		
			89 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| function usage {
 | |
|   echo "Usage: $0 [OPTION]..."
 | |
|   echo "Run Taskflow's test suite(s)"
 | |
|   echo ""
 | |
|   echo "  -f, --force              Force a clean re-build of the virtual environment. Useful when dependencies have been added."
 | |
|   echo "  -p, --pep8               Just run pep8"
 | |
|   echo "  -P, --no-pep8            Don't run static code checks"
 | |
|   echo "  -v, --verbose            Increase verbosity of reporting output"
 | |
|   echo "  -h, --help               Print this usage message"
 | |
|   echo ""
 | |
|   exit
 | |
| }
 | |
| 
 | |
| function process_option {
 | |
|   case "$1" in
 | |
|     -h|--help) usage;;
 | |
|     -p|--pep8) let just_pep8=1;;
 | |
|     -P|--no-pep8) let no_pep8=1;;
 | |
|     -f|--force) let force=1;;
 | |
|     -v|--verbose) let verbose=1;;
 | |
|     *) pos_args="$pos_args $1"
 | |
|   esac
 | |
| }
 | |
| 
 | |
| verbose=0
 | |
| force=0
 | |
| pos_args=""
 | |
| just_pep8=0
 | |
| no_pep8=0
 | |
| tox_args=""
 | |
| tox=""
 | |
| 
 | |
| for arg in "$@"; do
 | |
|   process_option $arg
 | |
| done
 | |
| 
 | |
| py=`which python`
 | |
| if [ -z "$py" ]; then
 | |
|     echo "Python is required to use $0"
 | |
|     echo "Please install it via your distributions package management system."
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| py_envs=`python -c 'import sys; print("py%s%s" % (sys.version_info[0:2]))'`
 | |
| py_envs=${PY_ENVS:-$py_envs}
 | |
| 
 | |
| function run_tests {
 | |
|     local tox_cmd="${tox} ${tox_args} -e $py_envs ${pos_args}"
 | |
|     echo "Running tests for environments $py_envs via $tox_cmd"
 | |
|     bash -c "$tox_cmd"
 | |
| }
 | |
| 
 | |
| function run_flake8 {
 | |
|   local tox_cmd="${tox} ${tox_args} -e pep8 ${pos_args}"
 | |
|   echo "Running flake8 via $tox_cmd"
 | |
|   bash -c "$tox_cmd"
 | |
| }
 | |
| 
 | |
| if [ $force -eq 1 ]; then
 | |
|   tox_args="$tox_args -r"
 | |
| fi
 | |
| 
 | |
| if [ $verbose -eq 1 ]; then
 | |
|   tox_args="$tox_args -v"
 | |
| fi
 | |
| 
 | |
| tox=`which tox`
 | |
| if [ -z "$tox" ]; then
 | |
|     echo "Tox is required to use $0"
 | |
|     echo "Please install it via \`pip\` or via your distributions" \
 | |
|          "package management system."
 | |
|     echo "Visit http://tox.readthedocs.org/ for additional installation" \
 | |
|          "instructions."
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| if [ $just_pep8 -eq 1 ]; then
 | |
|   run_flake8
 | |
|   exit
 | |
| fi
 | |
| 
 | |
| run_tests || exit
 | |
| 
 | |
| if [ $no_pep8 -eq 0 ]; then
 | |
|   run_flake8
 | |
| fi
 |