3 # All rights reserved. This program and the accompanying materials
4 # are made available under the terms of the Apache License, Version 2.0
5 # which accompanies this distribution, and is available at
6 # http://www.apache.org/licenses/LICENSE-2.0
14 from functest.cli.commands import cli_tier
15 from functest.utils.constants import CONST
18 class CliTierTesting(unittest.TestCase):
20 logging.disable(logging.CRITICAL)
23 self.tiername = 'tiername'
24 self.testnames = 'testnames'
25 with mock.patch('functest.cli.commands.cli_tier.tb'):
26 self.cli_tier = cli_tier.CliTier()
28 @mock.patch('functest.cli.commands.cli_tier.click.echo')
29 def test_list(self, mock_click_echo):
30 with mock.patch.object(self.cli_tier.tiers, 'get_tiers',
33 mock_click_echo.assert_called_with("")
35 @mock.patch('functest.cli.commands.cli_tier.click.echo')
36 def test_show_default(self, mock_click_echo):
37 with mock.patch.object(self.cli_tier.tiers, 'get_tier',
38 return_value=self.tiername):
39 self.cli_tier.show(self.tiername)
40 mock_click_echo.assert_called_with(self.tiername)
42 @mock.patch('functest.cli.commands.cli_tier.click.echo')
43 def test_show_missing_tier(self, mock_click_echo):
44 with mock.patch.object(self.cli_tier.tiers, 'get_tier',
46 mock.patch.object(self.cli_tier.tiers, 'get_tier_names',
47 return_value='tiernames'):
48 self.cli_tier.show(self.tiername)
49 mock_click_echo.assert_called_with("The tier with name '%s' does "
50 "not exist. Available tiers are"
51 ":\n %s\n" % (self.tiername,
54 @mock.patch('functest.cli.commands.cli_tier.click.echo')
55 def test_gettests_default(self, mock_click_echo):
56 mock_obj = mock.Mock()
57 attrs = {'get_test_names.return_value': self.testnames}
58 mock_obj.configure_mock(**attrs)
60 with mock.patch.object(self.cli_tier.tiers, 'get_tier',
61 return_value=mock_obj):
62 self.cli_tier.gettests(self.tiername)
63 mock_click_echo.assert_called_with("Test cases in tier "
64 "'%s':\n %s\n" % (self.tiername,
68 @mock.patch('functest.cli.commands.cli_tier.click.echo')
69 def test_gettests_missing_tier(self, mock_click_echo):
70 with mock.patch.object(self.cli_tier.tiers, 'get_tier',
72 mock.patch.object(self.cli_tier.tiers, 'get_tier_names',
73 return_value='tiernames'):
74 self.cli_tier.gettests(self.tiername)
75 mock_click_echo.assert_called_with("The tier with name '%s' does "
76 "not exist. Available tiers are"
77 ":\n %s\n" % (self.tiername,
80 @mock.patch('functest.cli.commands.cli_tier.os.path.isfile',
82 @mock.patch('functest.cli.commands.cli_tier.click.echo')
83 def test_run_missing_env_file(self, mock_click_echo, mock_os):
84 self.cli_tier.run(self.tiername)
85 mock_click_echo.assert_called_with("Functest environment is not ready."
86 " Run first 'functest env prepare'")
88 @mock.patch('functest.cli.commands.cli_tier.os.path.isfile',
90 @mock.patch('functest.cli.commands.cli_tier.ft_utils.execute_command')
91 def test_run_default(self, mock_ft_utils, mock_os):
92 cmd = ("python %s/functest/ci/run_tests.py "
93 "%s -t %s" % (CONST.dir_repo_functest, "-n -r ",
95 self.cli_tier.run(self.tiername, noclean=True, report=True)
96 mock_ft_utils.assert_called_with(cmd)
98 @mock.patch('functest.cli.commands.cli_tier.os.path.isfile',
100 @mock.patch('functest.cli.commands.cli_tier.ft_utils.execute_command')
101 def test_run_report_missing_noclean(self, mock_ft_utils, mock_os):
102 cmd = ("python %s/functest/ci/run_tests.py "
103 "%s -t %s" % (CONST.dir_repo_functest, "-r ",
105 self.cli_tier.run(self.tiername, noclean=False, report=True)
106 mock_ft_utils.assert_called_with(cmd)
108 @mock.patch('functest.cli.commands.cli_tier.os.path.isfile',
110 @mock.patch('functest.cli.commands.cli_tier.ft_utils.execute_command')
111 def test_run_noclean_missing_report(self, mock_ft_utils, mock_os):
112 cmd = ("python %s/functest/ci/run_tests.py "
113 "%s -t %s" % (CONST.dir_repo_functest, "-n ",
115 self.cli_tier.run(self.tiername, noclean=True, report=False)
116 mock_ft_utils.assert_called_with(cmd)
118 @mock.patch('functest.cli.commands.cli_tier.os.path.isfile',
120 @mock.patch('functest.cli.commands.cli_tier.ft_utils.execute_command')
121 def test_run_missing_noclean_report(self, mock_ft_utils, mock_os):
122 cmd = ("python %s/functest/ci/run_tests.py "
123 "%s -t %s" % (CONST.dir_repo_functest, "",
125 self.cli_tier.run(self.tiername, noclean=False, report=False)
126 mock_ft_utils.assert_called_with(cmd)
129 if __name__ == "__main__":
130 unittest.main(verbosity=2)