diff --git a/tuskar/cmd/api.py b/tuskar/cmd/api.py index 5dbf91ff..0cab6c18 100644 --- a/tuskar/cmd/api.py +++ b/tuskar/cmd/api.py @@ -19,21 +19,26 @@ import logging import os +import sys from wsgiref import simple_server from oslo.config import cfg from tuskar.api import app +from tuskar.common import config from tuskar.openstack.common import log -CONF = cfg.CONF +def main(argv=None): -def main(): + if argv is None: + argv = sys.argv + + config.parse_args(argv) # Build and start the WSGI app - host = CONF.tuskar_api_bind_ip - port = CONF.tuskar_api_port + host = cfg.CONF.tuskar_api_bind_ip + port = cfg.CONF.tuskar_api_port wsgi = simple_server.make_server( host, port, app.VersionSelectorApplication()) @@ -41,9 +46,9 @@ def main(): LOG = log.getLogger(__name__) LOG.info("Serving on http://%s:%s" % (host, port)) LOG.info("Configuration:") - CONF.log_opt_values(LOG, logging.INFO) + cfg.CONF.log_opt_values(LOG, logging.INFO) # make sure we have tripleo-heat-templates: - heat_template_path = CONF.tht_local_dir + heat_template_path = cfg.CONF.tht_local_dir try: os.listdir(heat_template_path) except OSError: @@ -53,7 +58,6 @@ def main(): LOG.info( "Cannot proceed - missing tripleo heat templates " "See INSTALL documentation for more info") - raise LOG.info("Using tripleo-heat-templates at %s" % (heat_template_path)) try: diff --git a/tuskar/tests/cmd/__init__.py b/tuskar/tests/cmd/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tuskar/tests/cmd/test_api.py b/tuskar/tests/cmd/test_api.py new file mode 100644 index 00000000..86f7fed6 --- /dev/null +++ b/tuskar/tests/cmd/test_api.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python +# +# Copyright 2013 Hewlett-Packard Development Company, L.P. +# All Rights Reserved. +# +# 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. + +from mock import ANY +from mock import patch + +from tuskar.cmd.api import main +from tuskar.tests.base import TestCase + + +class ApiCommandTests(TestCase): + + @patch('wsgiref.simple_server.make_server') + def test_start(self, mock_make_server): + + try: + main(['test.py', '--config-file', 'etc/tuskar/tuskar.conf.sample']) + except BaseException as e: + raise Exception(e) + + mock_make_server.assert_called_once_with('0.0.0.0', 8585, ANY)