зеркало из https://github.com/microsoft/azure-cli.git
Modify scripts to use helper module
This commit is contained in:
Родитель
05ebbdfdc5
Коммит
3e18b94c49
|
@ -7,11 +7,11 @@ python:
|
|||
install:
|
||||
- pip install -r requirements.txt
|
||||
- pip install -e . # Install the CLI as a package
|
||||
- python scripts/install_command_modules.py # Install the command modules as packages
|
||||
- python scripts/command_modules/install.py # Install the command modules as packages
|
||||
script:
|
||||
- export PYTHONPATH=$PATHONPATH:./src
|
||||
- python -m azure.cli
|
||||
- pylint -r n src/azure
|
||||
- python scripts/pylint_command_modules.py
|
||||
- python scripts/command_modules/pylint.py
|
||||
- python -m unittest discover -s src/azure/cli/tests --buffer
|
||||
- python scripts/test_command_modules.py
|
||||
- python scripts/command_modules/test.py
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
from __future__ import print_function
|
||||
import os
|
||||
import sys
|
||||
|
||||
from subprocess import check_call, CalledProcessError
|
||||
|
||||
COMMAND_MODULE_PREFIX = 'azure-cli-'
|
||||
|
||||
def get_all_command_modules():
|
||||
# The prefix for the command module folders
|
||||
PATH_TO_COMMAND_MODULES = os.path.abspath(os.path.join(os.path.abspath(__file__), '..', '..', '..', 'src' , 'command_modules'))
|
||||
all_command_modules = [(name, os.path.join(PATH_TO_COMMAND_MODULES, name))
|
||||
for name in os.listdir(PATH_TO_COMMAND_MODULES)
|
||||
if name.startswith(COMMAND_MODULE_PREFIX) and os.path.isdir(os.path.join(PATH_TO_COMMAND_MODULES, name))]
|
||||
print(str(len(all_command_modules))+" command module(s) found...")
|
||||
print([name for name, fullpath in all_command_modules])
|
||||
return all_command_modules
|
||||
|
||||
def exec_command(command, stdout=None):
|
||||
'''Returns True in the command was executed successfully'''
|
||||
try:
|
||||
print(command)
|
||||
check_call(command, stdout=stdout, shell=True)
|
||||
return True
|
||||
except CalledProcessError as err:
|
||||
print(err, file=sys.stderr)
|
||||
return False
|
||||
|
||||
def print_summary(failed_modules):
|
||||
print()
|
||||
print("SUMMARY")
|
||||
print("-------")
|
||||
if failed_modules:
|
||||
print(str(len(failed_modules))+" module(s) FAILED...", file=sys.stderr)
|
||||
print("Failed modules: " + ', '.join(failed_modules), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
else:
|
||||
print("OK")
|
|
@ -0,0 +1,18 @@
|
|||
## Install the command modules using pip ##
|
||||
from __future__ import print_function
|
||||
import os
|
||||
|
||||
from _common import get_all_command_modules, exec_command, print_summary
|
||||
|
||||
dev_null_file = open(os.devnull, 'w')
|
||||
|
||||
all_command_modules = get_all_command_modules()
|
||||
print("Installing each one.")
|
||||
|
||||
failed_module_names = []
|
||||
for name, fullpath in all_command_modules:
|
||||
success = exec_command("pip install -e "+fullpath, stdout=dev_null_file)
|
||||
if not success:
|
||||
failed_module_names.append(name)
|
||||
|
||||
print_summary(failed_module_names)
|
|
@ -0,0 +1,17 @@
|
|||
## Runs pylint on the command modules ##
|
||||
from __future__ import print_function
|
||||
import os
|
||||
|
||||
from _common import get_all_command_modules, exec_command, print_summary
|
||||
|
||||
all_command_modules = get_all_command_modules()
|
||||
print("Running pylint on each one.")
|
||||
|
||||
failed_module_names = []
|
||||
for name, fullpath in all_command_modules:
|
||||
path_to_module = os.path.join(fullpath, 'azure')
|
||||
success = exec_command("pylint -r n "+path_to_module)
|
||||
if not success:
|
||||
failed_module_names.append(name)
|
||||
|
||||
print_summary(failed_module_names)
|
|
@ -0,0 +1,28 @@
|
|||
## Run the tests for each command module ##
|
||||
|
||||
from __future__ import print_function
|
||||
import os
|
||||
import sys
|
||||
|
||||
dev_null_file = open(os.devnull, 'w')
|
||||
|
||||
from _common import get_all_command_modules, exec_command, print_summary, COMMAND_MODULE_PREFIX
|
||||
|
||||
all_command_modules = get_all_command_modules()
|
||||
print("Running tests on each one.")
|
||||
|
||||
failed_module_names = []
|
||||
skipped_modules = []
|
||||
for name, fullpath in all_command_modules:
|
||||
path_to_module = os.path.join(fullpath, 'azure', 'cli', 'command_modules', name.replace(COMMAND_MODULE_PREFIX, ''), 'tests')
|
||||
if not os.path.isdir(path_to_module):
|
||||
skipped_modules.append(name)
|
||||
continue
|
||||
print(path_to_module)
|
||||
success = exec_command("python -m unittest discover -s " + path_to_module + " --buffer", stdout=dev_null_file)
|
||||
if not success:
|
||||
failed_module_names.append(name)
|
||||
|
||||
print_summary(failed_module_names)
|
||||
if skipped_modules:
|
||||
print("Modules skipped as no test dir found:", ', '.join(skipped_modules), file=sys.stderr)
|
|
@ -1,42 +0,0 @@
|
|||
## Install the command modules using pip ##
|
||||
|
||||
from __future__ import print_function
|
||||
import os
|
||||
import sys
|
||||
|
||||
from subprocess import check_call, CalledProcessError
|
||||
|
||||
dev_null_file = open(os.devnull, 'w')
|
||||
|
||||
# The prefix for the command module folders
|
||||
COMMAND_MODULE_PREFIX = 'azure-cli-'
|
||||
PATH_TO_COMMAND_MODULES = os.path.abspath(os.path.join(os.path.abspath(__file__), '..', '..', 'src' , 'command_modules'))
|
||||
all_command_modules = [(name, os.path.join(PATH_TO_COMMAND_MODULES, name))
|
||||
for name in os.listdir(PATH_TO_COMMAND_MODULES)
|
||||
if name.startswith(COMMAND_MODULE_PREFIX) and os.path.isdir(os.path.join(PATH_TO_COMMAND_MODULES, name))]
|
||||
if not all_command_modules:
|
||||
print("No command modules found. If there are no command modules. This file should not be loaded in .travis.yml", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
print(str(len(all_command_modules))+" command module(s) found...")
|
||||
print("Installing each one.")
|
||||
|
||||
failed_modules = []
|
||||
|
||||
for (name, fullpath) in all_command_modules:
|
||||
path_to_module = os.path.join(fullpath)
|
||||
try:
|
||||
check_call("pip install -e "+path_to_module, stdout=dev_null_file, shell=True)
|
||||
except CalledProcessError as err:
|
||||
failed_modules.append((name, err))
|
||||
print(err, file=sys.stderr)
|
||||
|
||||
print()
|
||||
print("SUMMARY")
|
||||
print("-------")
|
||||
if failed_modules:
|
||||
print(str(len(failed_modules))+" module(s) FAILED install...", file=sys.stderr)
|
||||
print("Failed modules: " + ', '.join([name for (name, err) in failed_modules]), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
else:
|
||||
print('\n'.join([name for (name, fullpath) in all_command_modules]))
|
||||
print("INSTALLED COMMAND MODULES OK")
|
|
@ -1,43 +0,0 @@
|
|||
## Runs pylint on the command modules ##
|
||||
|
||||
from __future__ import print_function
|
||||
import os
|
||||
import sys
|
||||
|
||||
from subprocess import check_call, CalledProcessError
|
||||
|
||||
# The prefix for the command module folders
|
||||
COMMAND_MODULE_PREFIX = 'azure-cli-'
|
||||
PATH_TO_COMMAND_MODULES = os.path.abspath(os.path.join(os.path.abspath(__file__), '..', '..', 'src' , 'command_modules'))
|
||||
all_command_modules = [(name, os.path.join(PATH_TO_COMMAND_MODULES, name))
|
||||
for name in os.listdir(PATH_TO_COMMAND_MODULES)
|
||||
if name.startswith(COMMAND_MODULE_PREFIX) and os.path.isdir(os.path.join(PATH_TO_COMMAND_MODULES, name))]
|
||||
if not all_command_modules:
|
||||
print("No command modules found. If there are no command modules. This file should not be loaded in .travis.yml", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
print(str(len(all_command_modules))+" command module(s) found...")
|
||||
print("Running pylint on each one.")
|
||||
|
||||
failed_modules = []
|
||||
|
||||
# It runs through all the modules
|
||||
# If pylint fails on a module, we modify success to False and carry on
|
||||
# so we show all errors in all modules.
|
||||
for (name, fullpath) in all_command_modules:
|
||||
path_to_module = os.path.join(fullpath, 'azure')
|
||||
try:
|
||||
check_call("pylint -r n "+path_to_module, shell=True)
|
||||
except CalledProcessError as err:
|
||||
failed_modules.append((name, err))
|
||||
print(err, file=sys.stderr)
|
||||
|
||||
print()
|
||||
print("SUMMARY")
|
||||
print("-------")
|
||||
if failed_modules:
|
||||
print(str(len(failed_modules))+" module(s) FAILED pylint...", file=sys.stderr)
|
||||
print("Failed modules: " + ', '.join([name for (name, err) in failed_modules]), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
else:
|
||||
print('\n'.join([name for (name, fullpath) in all_command_modules]))
|
||||
print("ALL COMMAND MODULES OK")
|
|
@ -1,50 +0,0 @@
|
|||
## Run the tests for each command module ##
|
||||
|
||||
from __future__ import print_function
|
||||
import os
|
||||
import sys
|
||||
|
||||
from subprocess import check_call, CalledProcessError
|
||||
|
||||
dev_null_file = open(os.devnull, 'w')
|
||||
|
||||
# The prefix for the command module folders
|
||||
COMMAND_MODULE_PREFIX = 'azure-cli-'
|
||||
PATH_TO_COMMAND_MODULES = os.path.abspath(os.path.join(os.path.abspath(__file__), '..', '..', 'src' , 'command_modules'))
|
||||
all_command_modules = [(name, PATH_TO_COMMAND_MODULES+'/'+name)
|
||||
for name in os.listdir(PATH_TO_COMMAND_MODULES)
|
||||
if name.startswith(COMMAND_MODULE_PREFIX) and os.path.isdir(os.path.join(PATH_TO_COMMAND_MODULES, name))]
|
||||
if not all_command_modules:
|
||||
print("No command modules found. If there are no command modules. This file should not be loaded in .travis.yml", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
print(str(len(all_command_modules))+" command module(s) found...")
|
||||
print("Running tests on each one.")
|
||||
|
||||
failed_modules = []
|
||||
skipped_modules = []
|
||||
|
||||
for (name, fullpath) in all_command_modules:
|
||||
path_to_module = os.path.join(fullpath, 'azure', 'cli', 'command_modules', name.replace(COMMAND_MODULE_PREFIX, ''), 'tests')
|
||||
if not os.path.isdir(path_to_module):
|
||||
skipped_modules.append(name)
|
||||
continue
|
||||
try:
|
||||
print(path_to_module)
|
||||
check_call("python -m unittest discover -s " + path_to_module + " --buffer", stdout=dev_null_file, shell=True)
|
||||
except CalledProcessError as err:
|
||||
failed_modules.append((name, err))
|
||||
print(err, file=sys.stderr)
|
||||
|
||||
print()
|
||||
print("SUMMARY")
|
||||
print("-------")
|
||||
if skipped_modules:
|
||||
print("Modules skipped as no test dir found:", ', '.join(skipped_modules), file=sys.stderr)
|
||||
print()
|
||||
if failed_modules:
|
||||
print(str(len(failed_modules))+" module(s) FAILED tests...", file=sys.stderr)
|
||||
print("Failed modules: " + ', '.join([name for (name, err) in failed_modules]), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
else:
|
||||
print('\n'.join([name for (name, fullpath) in all_command_modules]))
|
||||
print("ALL COMMAND MODULES OK")
|
Загрузка…
Ссылка в новой задаче