Add test for dox.cmd
Change-Id: Ifc765aac66281d60fde6aaed17e7eb8e1f2cf247
This commit is contained in:
parent
a550f76774
commit
336d174cee
|
@ -111,7 +111,7 @@ def runner(args):
|
|||
|
||||
# Get Image
|
||||
if args.images:
|
||||
args_images = args.images.split(',')
|
||||
args_images = [x.strip() for x in args.images.split(',')]
|
||||
|
||||
if args.command:
|
||||
command = dox.config.cmdline.CommandLine(args.extra_args)
|
||||
|
|
|
@ -0,0 +1,80 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Author: Chmouel Boudjnah <chmouel@chmouel.com>
|
||||
#
|
||||
# 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 mock
|
||||
|
||||
import dox.cmd
|
||||
from dox.tests import base
|
||||
|
||||
default_argp = argparse.Namespace(user_map=None, command=None,
|
||||
environment=None, extra_args=None,
|
||||
debug=None, noop=True,
|
||||
images=None, path_map=None)
|
||||
|
||||
|
||||
class TestCmd(base.TestCase):
|
||||
|
||||
@mock.patch('dox.runner.Runner.is_docker_installed',
|
||||
return_value=False)
|
||||
def test_runner(self, installed_mock):
|
||||
self.assertRaises(SystemExit, dox.cmd.runner, default_argp)
|
||||
|
||||
@mock.patch('dox.cmd.run_dox')
|
||||
@mock.patch('dox.config.cmdline.CommandLine')
|
||||
def test_multiple_images_one_command(self, m_cmdline, m_run_dox):
|
||||
argp = default_argp
|
||||
argp.images = 'foo, bar'
|
||||
argp.command = '/bin/true'
|
||||
dox.cmd.runner(argp)
|
||||
|
||||
self.assertTrue(m_cmdline.called)
|
||||
# silly but i'm not sure how to test that in a proper way
|
||||
self.assertEqual(['foo', 'bar'],
|
||||
m_run_dox.call_args_list[0][0][1])
|
||||
|
||||
@mock.patch('dox.cmd.run_dox')
|
||||
@mock.patch('dox.images.get_images')
|
||||
def test_multiple_environments(self, m_get_images, m_run_dox):
|
||||
argp = default_argp
|
||||
argp.environment = 'env1, env2'
|
||||
dox.cmd.runner(argp)
|
||||
|
||||
self.assertEqual(2, m_get_images.call_count)
|
||||
self.assertEqual(2, m_run_dox.call_count)
|
||||
|
||||
@mock.patch('dox.cmd.run_dox')
|
||||
@mock.patch('dox.images.get_images')
|
||||
def test_multiple_environments_images(self, m_get_images, m_run_dox):
|
||||
argp = default_argp
|
||||
argp.images = 'foo, bar'
|
||||
argp.environment = 'env1, env2'
|
||||
dox.cmd.runner(argp)
|
||||
|
||||
self.assertEqual(0, m_get_images.call_count)
|
||||
self.assertEqual(2, m_run_dox.call_count)
|
||||
|
||||
@mock.patch('dox.cmd.run_dox')
|
||||
@mock.patch('dox.images.get_images')
|
||||
def test_default(self, m_get_images, m_run_dox):
|
||||
dox.cmd.runner(default_argp)
|
||||
|
||||
self.assertEqual('_default',
|
||||
m_get_images.call_args_list[0][0][0].get('section'))
|
||||
|
||||
@mock.patch('dox.runner.Runner')
|
||||
def test_run_dox(self, m_runner):
|
||||
dox.cmd.run_dox(default_argp, ['1', '2', '3'], '/bin/echo')
|
||||
self.assertEqual(1, m_runner.call_count)
|
Loading…
Reference in New Issue