Auto merge of #1644 - micbou:python-run-tests, r=Valloric
[Windows support] Convert run_tests script to python By converting run_tests script to python, we can run tests on Windows.
This commit is contained in:
commit
b7e9871801
@ -6,4 +6,4 @@ before_install:
|
||||
- git submodule update --init --recursive
|
||||
install:
|
||||
- pip install -r python/test_requirements.txt
|
||||
script: ./run_tests.sh
|
||||
script: ./run_tests.py
|
||||
|
66
run_tests.py
Executable file
66
run_tests.py
Executable file
@ -0,0 +1,66 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
import os.path as p
|
||||
import sys
|
||||
import argparse
|
||||
|
||||
DIR_OF_THIS_SCRIPT = p.dirname( p.abspath( __file__ ) )
|
||||
DIR_OF_THIRD_PARTY = p.join( DIR_OF_THIS_SCRIPT, 'third_party' )
|
||||
DIR_OF_YCMD_THIRD_PARTY = p.join( DIR_OF_THIRD_PARTY, 'ycmd', 'third_party' )
|
||||
|
||||
python_path = []
|
||||
for folder in os.listdir( DIR_OF_THIRD_PARTY ):
|
||||
python_path.append( p.abspath( p.join( DIR_OF_THIRD_PARTY, folder ) ) )
|
||||
for folder in os.listdir( DIR_OF_YCMD_THIRD_PARTY ):
|
||||
python_path.append( p.abspath( p.join( DIR_OF_YCMD_THIRD_PARTY, folder ) ) )
|
||||
if os.environ.get( 'PYTHONPATH' ):
|
||||
python_path.append( os.environ[ 'PYTHONPATH' ] )
|
||||
os.environ[ 'PYTHONPATH' ] = os.pathsep.join( python_path )
|
||||
|
||||
sys.path.insert( 1, p.abspath( p.join( DIR_OF_THIRD_PARTY, 'argparse' ) ) )
|
||||
|
||||
|
||||
def RunFlake8():
|
||||
print( 'Running flake8' )
|
||||
subprocess.check_call( [
|
||||
'flake8',
|
||||
'--select=F,C9',
|
||||
'--max-complexity=10',
|
||||
p.join( DIR_OF_THIS_SCRIPT, 'python' )
|
||||
] )
|
||||
|
||||
|
||||
def ParseArguments():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument( '--skip-build', action = 'store_true',
|
||||
help = 'Do not build ycmd before testing.' )
|
||||
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def BuildYcmdLibs( args ):
|
||||
if not args.skip_build:
|
||||
subprocess.check_call( [
|
||||
sys.executable,
|
||||
p.join( DIR_OF_THIS_SCRIPT, 'third_party', 'ycmd', 'build.py' )
|
||||
] )
|
||||
|
||||
|
||||
def NoseTests():
|
||||
subprocess.check_call( [
|
||||
'nosetests',
|
||||
'-v',
|
||||
p.join( DIR_OF_THIS_SCRIPT, 'python' )
|
||||
] )
|
||||
|
||||
|
||||
def Main():
|
||||
parsed_args = ParseArguments()
|
||||
RunFlake8()
|
||||
BuildYcmdLibs( parsed_args )
|
||||
NoseTests()
|
||||
|
||||
if __name__ == "__main__":
|
||||
Main()
|
43
run_tests.sh
43
run_tests.sh
@ -1,43 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
function usage {
|
||||
echo "Usage: $0 [--skip-build]"
|
||||
exit 0
|
||||
}
|
||||
|
||||
flake8 --select=F,C9 --max-complexity=10 "${SCRIPT_DIR}/python"
|
||||
skip_build=false
|
||||
|
||||
for flag in $@; do
|
||||
case "$flag" in
|
||||
--skip-build)
|
||||
skip_build=true
|
||||
;;
|
||||
*)
|
||||
usage
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if ! $skip_build; then
|
||||
"${SCRIPT_DIR}/third_party/ycmd/build.py"
|
||||
fi
|
||||
|
||||
for directory in "${SCRIPT_DIR}"/third_party/*; do
|
||||
if [ -d "${directory}" ]; then
|
||||
export PYTHONPATH=${directory}:$PYTHONPATH
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
for directory in "${SCRIPT_DIR}"/third_party/ycmd/third_party/*; do
|
||||
if [ -d "${directory}" ]; then
|
||||
export PYTHONPATH=${directory}:$PYTHONPATH
|
||||
fi
|
||||
done
|
||||
|
||||
nosetests -v "${SCRIPT_DIR}/python"
|
Loading…
Reference in New Issue
Block a user