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
8 # pylint: disable=missing-docstring
15 from functest.cli.commands import cli_tier
18 class CliTierTesting(unittest.TestCase):
21 self.tiername = 'tiername'
22 self.testnames = 'testnames'
23 with mock.patch('functest.ci.tier_builder'):
24 self.cli_tier = cli_tier.CliTier()
26 @mock.patch('functest.cli.commands.cli_tier.click.echo')
27 def test_list(self, mock_click_echo):
28 with mock.patch.object(self.cli_tier.tiers, 'get_tiers',
31 mock_click_echo.assert_called_with("")
33 @mock.patch('functest.cli.commands.cli_tier.click.echo')
34 def test_show_default(self, mock_click_echo):
35 with mock.patch.object(self.cli_tier.tiers, 'get_tier',
36 return_value=self.tiername):
37 self.cli_tier.show(self.tiername)
38 mock_click_echo.assert_called_with(self.tiername)
40 @mock.patch('functest.cli.commands.cli_tier.click.echo')
41 def test_show_missing_tier(self, mock_click_echo):
42 with mock.patch.object(self.cli_tier.tiers, 'get_tier',
44 mock.patch.object(self.cli_tier.tiers, 'get_tier_names',
45 return_value='tiernames'):
46 self.cli_tier.show(self.tiername)
47 mock_click_echo.assert_called_with("The tier with name '%s' does "
48 "not exist. Available tiers are"
49 ":\n %s\n" % (self.tiername,
52 @mock.patch('functest.cli.commands.cli_tier.click.echo')
53 def test_gettests_default(self, mock_click_echo):
54 mock_obj = mock.Mock()
55 attrs = {'get_test_names.return_value': self.testnames}
56 mock_obj.configure_mock(**attrs)
58 with mock.patch.object(self.cli_tier.tiers, 'get_tier',
59 return_value=mock_obj):
60 self.cli_tier.gettests(self.tiername)
61 mock_click_echo.assert_called_with(
62 "Test cases in tier '%s':\n %s\n" % (
63 self.tiername, self.testnames))
65 @mock.patch('functest.cli.commands.cli_tier.click.echo')
66 def test_gettests_missing_tier(self, mock_click_echo):
67 with mock.patch.object(self.cli_tier.tiers, 'get_tier',
69 mock.patch.object(self.cli_tier.tiers, 'get_tier_names',
70 return_value='tiernames'):
71 self.cli_tier.gettests(self.tiername)
72 mock_click_echo.assert_called_with("The tier with name '%s' does "
73 "not exist. Available tiers are"
74 ":\n %s\n" % (self.tiername,
77 @mock.patch('functest.utils.functest_utils.execute_command')
78 def test_run_default(self, mock_ft_utils):
79 cmd = "run_tests -n -r -t {}".format(self.tiername)
80 self.cli_tier.run(self.tiername, noclean=True, report=True)
81 mock_ft_utils.assert_called_with(cmd)
83 @mock.patch('functest.utils.functest_utils.execute_command')
84 def test_run_report_missing_noclean(self, mock_ft_utils):
85 cmd = "run_tests -r -t {}".format(self.tiername)
86 self.cli_tier.run(self.tiername, noclean=False, report=True)
87 mock_ft_utils.assert_called_with(cmd)
89 @mock.patch('functest.utils.functest_utils.execute_command')
90 def test_run_noclean_missing_report(self, mock_ft_utils):
91 cmd = "run_tests -n -t {}".format(self.tiername)
92 self.cli_tier.run(self.tiername, noclean=True, report=False)
93 mock_ft_utils.assert_called_with(cmd)
95 @mock.patch('functest.utils.functest_utils.execute_command')
96 def test_run_missing_noclean_report(self, mock_ft_utils):
97 cmd = "run_tests -t {}".format(self.tiername)
98 self.cli_tier.run(self.tiername, noclean=False, report=False)
99 mock_ft_utils.assert_called_with(cmd)
102 if __name__ == "__main__":
103 logging.disable(logging.CRITICAL)
104 unittest.main(verbosity=2)