Adding a basic specter runner
Change-Id: I55434e6c1a6be69d615833001077b8c5076492d1
This commit is contained in:
parent
804d7f18bc
commit
269d121f9d
|
@ -13,3 +13,49 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
"""
|
||||
import argparse
|
||||
|
||||
|
||||
def parse_runner_args(arg_parser):
|
||||
""" Generic CAFE args for external runners"""
|
||||
|
||||
arg_parser.add_argument(
|
||||
"product",
|
||||
nargs=1,
|
||||
metavar="<product>",
|
||||
help="Product name")
|
||||
|
||||
arg_parser.add_argument(
|
||||
"config",
|
||||
nargs=1,
|
||||
metavar="<config_file>",
|
||||
help="Product test config")
|
||||
|
||||
arg_parser.add_argument(
|
||||
dest='cmd_opts',
|
||||
nargs=argparse.REMAINDER,
|
||||
metavar="<cmd_opts>",
|
||||
help="Options to pass to the test runner")
|
||||
|
||||
return arg_parser.parse_args()
|
||||
|
||||
|
||||
def print_mug(name, brewing_from):
|
||||
""" Generic CAFE mug """
|
||||
border = '-' * 40
|
||||
mug = """
|
||||
Brewing from {path}
|
||||
( (
|
||||
) )
|
||||
.........
|
||||
| |___
|
||||
| |_ |
|
||||
| :-) |_| |
|
||||
| |___|
|
||||
|_______|
|
||||
=== CAFE {name} Runner ===""".format(
|
||||
path=brewing_from, name=name)
|
||||
|
||||
print border
|
||||
print mug
|
||||
print border
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
"""
|
||||
Copyright 2013 Rackspace
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
"""
|
|
@ -0,0 +1,52 @@
|
|||
"""
|
||||
Copyright 2013 Rackspace
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import subprocess
|
||||
from cafe.configurator.managers import TestEnvManager
|
||||
from cafe.drivers import print_mug, parse_runner_args
|
||||
|
||||
|
||||
def entry_point():
|
||||
|
||||
# Setup and parse arguments
|
||||
arg_parser = argparse.ArgumentParser(prog='specter-runner')
|
||||
args = parse_runner_args(arg_parser)
|
||||
|
||||
config = str(args.config[0]) + '.config'
|
||||
product = str(args.product[0])
|
||||
cmd_opts = args.cmd_opts
|
||||
|
||||
test_env_manager = TestEnvManager(product, config)
|
||||
test_env_manager.finalize()
|
||||
|
||||
test_path = os.path.join(
|
||||
test_env_manager.test_repo_path, product)
|
||||
|
||||
call_args = ['specter', '--search', test_path, '--no-art']
|
||||
|
||||
if len(cmd_opts) > 0:
|
||||
call_args.extend(cmd_opts)
|
||||
|
||||
print_mug(name='Specter', brewing_from=test_path)
|
||||
|
||||
subprocess.call(call_args)
|
||||
exit(0)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
entry_point()
|
1
setup.py
1
setup.py
|
@ -92,5 +92,6 @@ setup(
|
|||
['cafe-runner = cafe.drivers.unittest.runner:entry_point',
|
||||
'behave-runner = cafe.drivers.behave.runner:entry_point',
|
||||
'vows-runner = cafe.drivers.pyvows.runner:entry_point',
|
||||
'specter-runner = cafe.drivers.specter.runner:entry_point',
|
||||
'cafe-config = cafe.configurator.cli:entry_point']},
|
||||
cmdclass={'install': install})
|
||||
|
|
Loading…
Reference in New Issue