67 lines
1.6 KiB
Python
67 lines
1.6 KiB
Python
|
#!/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()
|