OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 # | 2 # |
3 # Copyright (c) 2011 The Chromium OS Authors. All rights reserved. | 3 # Copyright (c) 2011 The Chromium OS Authors. All rights reserved. |
4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
6 | 6 |
7 """Unit tests for main.py.""" | 7 """Unit tests for main.py.""" |
8 | 8 |
9 import doctest | 9 import doctest |
10 import os | 10 import os |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 class TestFindCommand(unittest.TestCase): | 44 class TestFindCommand(unittest.TestCase): |
45 """Test main._FindCommand.""" | 45 """Test main._FindCommand.""" |
46 # TODO(dianders): Add a test where I override main._COMMAND_HANDLERS | 46 # TODO(dianders): Add a test where I override main._COMMAND_HANDLERS |
47 # and main._COMMAND_STRS so that I can test more of _FindCommand(). | 47 # and main._COMMAND_STRS so that I can test more of _FindCommand(). |
48 | 48 |
49 def setUp(self): | 49 def setUp(self): |
50 """Test initialization.""" | 50 """Test initialization.""" |
51 # Create our mox and stub out function calls used by _FindCommand()... | 51 # Create our mox and stub out function calls used by _FindCommand()... |
52 self.mox = mox.Mox() | 52 self.mox = mox.Mox() |
53 self.mox.StubOutWithMock(cros_lib, 'Die') | 53 self.mox.StubOutWithMock(cros_lib, 'Die') |
| 54 self.mox.StubOutWithMock(cros_lib, 'Info') |
54 self.mox.StubOutWithMock(text_menu, 'TextMenu') | 55 self.mox.StubOutWithMock(text_menu, 'TextMenu') |
55 | 56 |
56 def tearDown(self): | 57 def tearDown(self): |
57 """Test cleanup.""" | 58 """Test cleanup.""" |
58 # Unset stubs... | 59 # Unset stubs... |
59 self.mox.UnsetStubs() | 60 self.mox.UnsetStubs() |
60 | 61 |
61 def testInvalidCommand(self): | 62 def testInvalidCommand(self): |
62 """Test that _FindCommand('implode') causes cros_lib.Die().""" | 63 """Test that _FindCommand('implode') causes cros_lib.Die().""" |
63 # Should be a call to cros_lib.Die. We'll have it fake a _DeathException... | 64 # Should be a call to cros_lib.Die. We'll have it fake a _DeathException... |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 def testShCommand(self): | 142 def testShCommand(self): |
142 """Test that _FindCommand('sh') returns 'shell'. | 143 """Test that _FindCommand('sh') returns 'shell'. |
143 | 144 |
144 This serves two purposes: | 145 This serves two purposes: |
145 1. Test the 'prefix' feature of _FindCommand | 146 1. Test the 'prefix' feature of _FindCommand |
146 2. Validate that nobody has introduced another command that starts with | 147 2. Validate that nobody has introduced another command that starts with |
147 'sh', since it's expected that many people will use this to invoke the | 148 'sh', since it's expected that many people will use this to invoke the |
148 shell. | 149 shell. |
149 """ | 150 """ |
150 # _FindCommand should give us a message that it has interpreted sh as shell. | 151 # _FindCommand should give us a message that it has interpreted sh as shell. |
| 152 cros_lib.Info(mox.IsA(basestring)) |
151 | 153 |
152 # Run the command and verify proper mocks were called... | 154 # Run the command and verify proper mocks were called... |
153 self.mox.ReplayAll() | 155 self.mox.ReplayAll() |
154 cmd_str = main._FindCommand('sh') | 156 cmd_str = main._FindCommand('sh') |
155 self.mox.VerifyAll() | 157 self.mox.VerifyAll() |
156 | 158 |
157 self.assertEqual(cmd_str, 'shell', | 159 self.assertEqual(cmd_str, 'shell', |
158 '_FindCommand("sh") should return "shell" back.') | 160 '_FindCommand("sh") should return "shell" back.') |
159 | 161 |
160 | 162 |
161 class TestFindSpec(unittest.TestCase): | 163 class TestFindSpec(unittest.TestCase): |
162 """Test utils.FindSpec.""" | 164 """Test utils.FindSpec.""" |
163 | 165 |
164 def setUp(self): | 166 def setUp(self): |
165 """Test initialization.""" | 167 """Test initialization.""" |
166 # Create our mox and stub out function calls used by _FindSpec()... | 168 # Create our mox and stub out function calls used by _FindSpec()... |
167 self.mox = mox.Mox() | 169 self.mox = mox.Mox() |
168 self.mox.StubOutWithMock(os, 'listdir') | 170 self.mox.StubOutWithMock(os, 'listdir') |
169 self.mox.StubOutWithMock(os.path, 'isfile') | 171 self.mox.StubOutWithMock(os.path, 'isfile') |
170 self.mox.StubOutWithMock(cros_lib, 'Die') | 172 self.mox.StubOutWithMock(cros_lib, 'Die') |
| 173 self.mox.StubOutWithMock(cros_lib, 'Info') |
171 self.mox.StubOutWithMock(text_menu, 'TextMenu') | 174 self.mox.StubOutWithMock(text_menu, 'TextMenu') |
172 | 175 |
173 def tearDown(self): | 176 def tearDown(self): |
174 """Test cleanup.""" | 177 """Test cleanup.""" |
175 # Unset stubs... | 178 # Unset stubs... |
176 self.mox.UnsetStubs() | 179 self.mox.UnsetStubs() |
177 | 180 |
178 def testInvalidSpec(self): | 181 def testInvalidSpec(self): |
179 """Test that _FindSpec('bogusSpec') causes cros_lib.Die().""" | 182 """Test that _FindSpec('bogusSpec') causes cros_lib.Die().""" |
180 # Pass this spec name... | 183 # Pass this spec name... |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
396 self.mox.VerifyAll() | 399 self.mox.VerifyAll() |
397 | 400 |
398 self.assertTrue(re.search('^/.*%s$' % expected_result, spec_path), | 401 self.assertTrue(re.search('^/.*%s$' % expected_result, spec_path), |
399 '_FindSpec("%s") incorrectly returned "%s".' % | 402 '_FindSpec("%s") incorrectly returned "%s".' % |
400 (spec_name, spec_path)) | 403 (spec_name, spec_path)) |
401 | 404 |
402 | 405 |
403 if __name__ == '__main__': | 406 if __name__ == '__main__': |
404 doctest.testmod(main) | 407 doctest.testmod(main) |
405 unittest.main() | 408 unittest.main() |
OLD | NEW |