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
17 class CliTierTesting(unittest.TestCase):
20 self.tiername = 'tiername'
21 self.testnames = 'testnames'
22 with mock.patch('functest.cli.commands.cli_tier.tb'):
23 self.cli_tier = cli_tier.CliTier()
25 @mock.patch('functest.cli.commands.cli_tier.click.echo')
26 def test_list(self, mock_click_echo):
27 with mock.patch.object(self.cli_tier.tiers, 'get_tiers',
30 mock_click_echo.assert_called_with("")
32 @mock.patch('functest.cli.commands.cli_tier.click.echo')
33 def test_show_default(self, mock_click_echo):
34 with mock.patch.object(self.cli_tier.tiers, 'get_tier',
35 return_value=self.tiername):
36 self.cli_tier.show(self.tiername)
37 mock_click_echo.assert_called_with(self.tiername)
39 @mock.patch('functest.cli.commands.cli_tier.click.echo')
40 def test_show_missing_tier(self, mock_click_echo):
41 with mock.patch.object(self.cli_tier.tiers, 'get_tier',
43 mock.patch.object(self.cli_tier.tiers, 'get_tier_names',
44 return_value='tiernames'):
45 self.cli_tier.show(self.tiername)
46 mock_click_echo.assert_called_with("The tier with name '%s' does "
47 "not exist. Available tiers are"
48 ":\n %s\n" % (self.tiername,
51 @mock.patch('functest.cli.commands.cli_tier.click.echo')
52 def test_gettests_default(self, mock_click_echo):
53 mock_obj = mock.Mock()
54 attrs = {'get_test_names.return_value': self.testnames}
55 mock_obj.configure_mock(**attrs)
57 with mock.patch.object(self.cli_tier.tiers, 'get_tier',
58 return_value=mock_obj):
59 self.cli_tier.gettests(self.tiername)
60 mock_click_echo.assert_called_with("Test cases in tier "
61 "'%s':\n %s\n" % (self.tiername,
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.cli.commands.cli_tier.os.path.isfile',
79 @mock.patch('functest.cli.commands.cli_tier.click.echo')
80 def test_run_missing_env_file(self, mock_click_echo, mock_os):
81 self.cli_tier.run(self.tiername)
82 mock_click_echo.assert_called_with("Functest environment is not ready."
83 " Run first 'functest env prepare'")
85 @mock.patch('functest.cli.commands.cli_tier.os.path.isfile',
87 @mock.patch('functest.cli.commands.cli_tier.ft_utils.execute_command')
88 def test_run_default(self, mock_ft_utils, mock_os):
89 cmd = "run_tests -n -r -t {}".format(self.tiername)
90 self.cli_tier.run(self.tiername, noclean=True, report=True)
91 mock_ft_utils.assert_called_with(cmd)
93 @mock.patch('functest.cli.commands.cli_tier.os.path.isfile',
95 @mock.patch('functest.cli.commands.cli_tier.ft_utils.execute_command')
96 def test_run_report_missing_noclean(self, mock_ft_utils, mock_os):
97 cmd = "run_tests -r -t {}".format(self.tiername)
98 self.cli_tier.run(self.tiername, noclean=False, report=True)
99 mock_ft_utils.assert_called_with(cmd)
101 @mock.patch('functest.cli.commands.cli_tier.os.path.isfile',
103 @mock.patch('functest.cli.commands.cli_tier.ft_utils.execute_command')
104 def test_run_noclean_missing_report(self, mock_ft_utils, mock_os):
105 cmd = "run_tests -n -t {}".format(self.tiername)
106 self.cli_tier.run(self.tiername, noclean=True, report=False)
107 mock_ft_utils.assert_called_with(cmd)
109 @mock.patch('functest.cli.commands.cli_tier.os.path.isfile',
111 @mock.patch('functest.cli.commands.cli_tier.ft_utils.execute_command')
112 def test_run_missing_noclean_report(self, mock_ft_utils, mock_os):
113 cmd = "run_tests -t {}".format(self.tiername)
114 self.cli_tier.run(self.tiername, noclean=False, report=False)
115 mock_ft_utils.assert_called_with(cmd)
118 if __name__ == "__main__":
119 logging.disable(logging.CRITICAL)
120 unittest.main(verbosity=2)