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
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.cli.commands.cli_tier.tb'):
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("Test cases in tier "
62 "'%s':\n %s\n" % (self.tiername,
66 @mock.patch('functest.cli.commands.cli_tier.click.echo')
67 def test_gettests_missing_tier(self, mock_click_echo):
68 with mock.patch.object(self.cli_tier.tiers, 'get_tier',
70 mock.patch.object(self.cli_tier.tiers, 'get_tier_names',
71 return_value='tiernames'):
72 self.cli_tier.gettests(self.tiername)
73 mock_click_echo.assert_called_with("The tier with name '%s' does "
74 "not exist. Available tiers are"
75 ":\n %s\n" % (self.tiername,
78 @mock.patch('functest.cli.commands.cli_tier.os.path.isfile',
80 @mock.patch('functest.cli.commands.cli_tier.click.echo')
81 def test_run_missing_env_file(self, mock_click_echo, mock_os):
82 self.cli_tier.run(self.tiername)
83 mock_click_echo.assert_called_with("Functest environment is not ready."
84 " Run first 'functest env prepare'")
86 @mock.patch('functest.cli.commands.cli_tier.os.path.isfile',
88 @mock.patch('functest.cli.commands.cli_tier.ft_utils.execute_command')
89 def test_run_default(self, mock_ft_utils, mock_os):
90 cmd = ("python %s %s -t %s" %
91 (pkg_resources.resource_filename(
92 'functest', 'ci/run_tests.py'),
93 "-n -r ", self.tiername))
94 self.cli_tier.run(self.tiername, noclean=True, report=True)
95 mock_ft_utils.assert_called_with(cmd)
97 @mock.patch('functest.cli.commands.cli_tier.os.path.isfile',
99 @mock.patch('functest.cli.commands.cli_tier.ft_utils.execute_command')
100 def test_run_report_missing_noclean(self, mock_ft_utils, mock_os):
101 cmd = ("python %s %s -t %s" %
102 (pkg_resources.resource_filename(
103 'functest', 'ci/run_tests.py'),
104 "-r ", self.tiername))
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 %s -t %s" %
113 (pkg_resources.resource_filename(
114 'functest', 'ci/run_tests.py'),
115 "-n ", self.tiername))
116 self.cli_tier.run(self.tiername, noclean=True, report=False)
117 mock_ft_utils.assert_called_with(cmd)
119 @mock.patch('functest.cli.commands.cli_tier.os.path.isfile',
121 @mock.patch('functest.cli.commands.cli_tier.ft_utils.execute_command')
122 def test_run_missing_noclean_report(self, mock_ft_utils, mock_os):
123 cmd = ("python %s %s -t %s" %
124 (pkg_resources.resource_filename(
125 'functest', 'ci/run_tests.py'),
127 self.cli_tier.run(self.tiername, noclean=False, report=False)
128 mock_ft_utils.assert_called_with(cmd)
131 if __name__ == "__main__":
132 logging.disable(logging.CRITICAL)
133 unittest.main(verbosity=2)