Merge "Adding missing test cases in "test_run.py""
This commit is contained in:
commit
085a04ba67
|
@ -24,7 +24,9 @@ import mock
|
|||
import six
|
||||
|
||||
from tempest.cmd import run
|
||||
from tempest.cmd import workspace
|
||||
from tempest import config
|
||||
from tempest.lib.common.utils import data_utils
|
||||
from tempest.tests import base
|
||||
|
||||
DEVNULL = open(os.devnull, 'wb')
|
||||
|
@ -58,6 +60,12 @@ class TestTempestRun(base.TestCase):
|
|||
self.assertEqual(['i_am_a_fun_little_regex'],
|
||||
self.run_cmd._build_regex(args))
|
||||
|
||||
def test__build_regex_smoke_regex(self):
|
||||
args = mock.Mock(spec=argparse.Namespace)
|
||||
setattr(args, "smoke", True)
|
||||
setattr(args, 'regex', 'i_am_a_fun_little_regex')
|
||||
self.assertEqual(['smoke'], self.run_cmd._build_regex(args))
|
||||
|
||||
|
||||
class TestRunReturnCode(base.TestCase):
|
||||
def setUp(self):
|
||||
|
@ -173,6 +181,27 @@ class TestConfigPathCheck(base.TestCase):
|
|||
|
||||
|
||||
class TestTakeAction(base.TestCase):
|
||||
def setUp(self):
|
||||
super(TestTakeAction, self).setUp()
|
||||
self.name = data_utils.rand_name('workspace')
|
||||
self.path = tempfile.mkdtemp()
|
||||
self.addCleanup(shutil.rmtree, self.path, ignore_errors=True)
|
||||
store_dir = tempfile.mkdtemp()
|
||||
self.addCleanup(shutil.rmtree, store_dir, ignore_errors=True)
|
||||
self.store_file = os.path.join(store_dir, 'workspace.yaml')
|
||||
self.workspace_manager = workspace.WorkspaceManager(
|
||||
path=self.store_file)
|
||||
self.workspace_manager.register_new_workspace(self.name, self.path)
|
||||
|
||||
def _setup_test_dirs(self):
|
||||
self.directory = tempfile.mkdtemp(prefix='tempest-unit')
|
||||
self.addCleanup(shutil.rmtree, self.directory, ignore_errors=True)
|
||||
self.test_dir = os.path.join(self.directory, 'tests')
|
||||
os.mkdir(self.test_dir)
|
||||
# Change directory, run wrapper and check result
|
||||
self.addCleanup(os.chdir, os.path.abspath(os.curdir))
|
||||
os.chdir(self.directory)
|
||||
|
||||
def test_workspace_not_registered(self):
|
||||
class Exception_(Exception):
|
||||
pass
|
||||
|
@ -201,15 +230,7 @@ class TestTakeAction(base.TestCase):
|
|||
self.assertIn(workspace, exit_msg)
|
||||
|
||||
def test_config_file_specified(self):
|
||||
# Setup test dirs
|
||||
self.directory = tempfile.mkdtemp(prefix='tempest-unit')
|
||||
self.addCleanup(shutil.rmtree, self.directory)
|
||||
self.test_dir = os.path.join(self.directory, 'tests')
|
||||
os.mkdir(self.test_dir)
|
||||
# Change directory, run wrapper and check result
|
||||
self.addCleanup(os.chdir, os.path.abspath(os.curdir))
|
||||
os.chdir(self.directory)
|
||||
|
||||
self._setup_test_dirs()
|
||||
tempest_run = run.TempestRun(app=mock.Mock(), app_args=mock.Mock())
|
||||
parsed_args = mock.Mock()
|
||||
|
||||
|
@ -222,3 +243,97 @@ class TestTakeAction(base.TestCase):
|
|||
m.return_value = 0
|
||||
self.assertEqual(0, tempest_run.take_action(parsed_args))
|
||||
m.assert_called()
|
||||
|
||||
def test_no_config_file_no_workspace_no_state(self):
|
||||
self._setup_test_dirs()
|
||||
tempest_run = run.TempestRun(app=mock.Mock(), app_args=mock.Mock())
|
||||
parsed_args = mock.Mock()
|
||||
|
||||
parsed_args.workspace = None
|
||||
parsed_args.state = None
|
||||
parsed_args.list_tests = False
|
||||
parsed_args.config_file = ''
|
||||
|
||||
with mock.patch('stestr.commands.run_command'):
|
||||
self.assertRaises(SystemExit, tempest_run.take_action, parsed_args)
|
||||
|
||||
def test_config_file_workspace_registered(self):
|
||||
self._setup_test_dirs()
|
||||
tempest_run = run.TempestRun(app=mock.Mock(), app_args=mock.Mock())
|
||||
parsed_args = mock.Mock()
|
||||
parsed_args.workspace = self.name
|
||||
parsed_args.workspace_path = self.store_file
|
||||
parsed_args.state = None
|
||||
parsed_args.list_tests = False
|
||||
parsed_args.config_file = '.stestr.conf'
|
||||
|
||||
with mock.patch('stestr.commands.run_command') as m:
|
||||
m.return_value = 0
|
||||
self.assertEqual(0, tempest_run.take_action(parsed_args))
|
||||
m.assert_called()
|
||||
|
||||
@mock.patch('tempest.cmd.run.TempestRun._init_state')
|
||||
def test_workspace_registered_no_config_no_state(self, mock_init_state):
|
||||
self._setup_test_dirs()
|
||||
tempest_run = run.TempestRun(app=mock.Mock(), app_args=mock.Mock())
|
||||
parsed_args = mock.Mock()
|
||||
parsed_args.workspace = self.name
|
||||
parsed_args.workspace_path = self.store_file
|
||||
parsed_args.state = None
|
||||
parsed_args.list_tests = False
|
||||
parsed_args.config_file = ''
|
||||
|
||||
with mock.patch('stestr.commands.run_command') as m:
|
||||
m.return_value = 0
|
||||
self.assertEqual(0, tempest_run.take_action(parsed_args))
|
||||
m.assert_called()
|
||||
mock_init_state.assert_not_called()
|
||||
|
||||
@mock.patch('tempest.cmd.run.TempestRun._init_state')
|
||||
def test_no_config_file_no_workspace_state_true(self, mock_init_state):
|
||||
self._setup_test_dirs()
|
||||
tempest_run = run.TempestRun(app=mock.Mock(), app_args=mock.Mock())
|
||||
parsed_args = mock.Mock()
|
||||
|
||||
parsed_args.workspace = None
|
||||
parsed_args.state = True
|
||||
parsed_args.list_tests = False
|
||||
parsed_args.config_file = ''
|
||||
|
||||
with mock.patch('stestr.commands.run_command'):
|
||||
self.assertRaises(SystemExit, tempest_run.take_action, parsed_args)
|
||||
mock_init_state.assert_not_called()
|
||||
|
||||
@mock.patch('tempest.cmd.run.TempestRun._init_state')
|
||||
def test_workspace_registered_no_config_state_true(self, mock_init_state):
|
||||
self._setup_test_dirs()
|
||||
tempest_run = run.TempestRun(app=mock.Mock(), app_args=mock.Mock())
|
||||
parsed_args = mock.Mock()
|
||||
parsed_args.workspace = self.name
|
||||
parsed_args.workspace_path = self.store_file
|
||||
parsed_args.state = True
|
||||
parsed_args.list_tests = False
|
||||
parsed_args.config_file = ''
|
||||
|
||||
with mock.patch('stestr.commands.run_command') as m:
|
||||
m.return_value = 0
|
||||
self.assertEqual(0, tempest_run.take_action(parsed_args))
|
||||
m.assert_called()
|
||||
mock_init_state.assert_called()
|
||||
|
||||
@mock.patch('tempest.cmd.run.TempestRun._init_state')
|
||||
def test_no_workspace_config_file_state_true(self, mock_init_state):
|
||||
self._setup_test_dirs()
|
||||
tempest_run = run.TempestRun(app=mock.Mock(), app_args=mock.Mock())
|
||||
parsed_args = mock.Mock()
|
||||
parsed_args.workspace = None
|
||||
parsed_args.workspace_path = self.store_file
|
||||
parsed_args.state = True
|
||||
parsed_args.list_tests = False
|
||||
parsed_args.config_file = '.stestr.conf'
|
||||
|
||||
with mock.patch('stestr.commands.run_command') as m:
|
||||
m.return_value = 0
|
||||
self.assertEqual(0, tempest_run.take_action(parsed_args))
|
||||
m.assert_called()
|
||||
mock_init_state.assert_called()
|
||||
|
|
Loading…
Reference in New Issue