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
|
- git submodule update --init --recursive
|
||||||
install:
|
install:
|
||||||
- pip install -r python/test_requirements.txt
|
- 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