OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 import cStringIO | 6 import cStringIO |
7 import difflib | 7 import difflib |
8 import os | 8 import os |
9 import sys | 9 import sys |
10 import unittest | 10 import unittest |
11 | 11 |
12 SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) | 12 SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) |
| 13 TOOLS_DIR = os.path.dirname(SCRIPT_DIR) |
| 14 CHROME_SRC = os.path.dirname(os.path.dirname(os.path.dirname(TOOLS_DIR))) |
| 15 MOCK_DIR = os.path.join(CHROME_SRC, 'third_party', 'pymock') |
13 BUILD_TOOLS_DIR = os.path.dirname(SCRIPT_DIR) | 16 BUILD_TOOLS_DIR = os.path.dirname(SCRIPT_DIR) |
14 | 17 |
15 sys.path.append(BUILD_TOOLS_DIR) | 18 sys.path.append(BUILD_TOOLS_DIR) |
| 19 sys.path.append(MOCK_DIR) |
| 20 |
16 import easy_template | 21 import easy_template |
| 22 import mock |
| 23 |
| 24 SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) |
17 | 25 |
18 class EasyTemplateTestCase(unittest.TestCase): | 26 class EasyTemplateTestCase(unittest.TestCase): |
19 def _RunTest(self, template, expected, template_dict): | 27 def _RunTest(self, template, expected, template_dict): |
20 src = cStringIO.StringIO(template) | 28 src = cStringIO.StringIO(template) |
21 dst = cStringIO.StringIO() | 29 dst = cStringIO.StringIO() |
22 easy_template.RunTemplate(src, dst, template_dict) | 30 easy_template.RunTemplate(src, dst, template_dict) |
23 if dst.getvalue() != expected: | 31 if dst.getvalue() != expected: |
24 expected_lines = expected.splitlines(1) | 32 expected_lines = expected.splitlines(1) |
25 actual_lines = dst.getvalue().splitlines(1) | 33 actual_lines = dst.getvalue().splitlines(1) |
26 diff = ''.join(difflib.unified_diff( | 34 diff = ''.join(difflib.unified_diff( |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 {'name': 'name', 'type': 'std::string'}, | 117 {'name': 'name', 'type': 'std::string'}, |
110 {'name': 'problems', 'type': 'array', 'basetype': 'int', 'size': 99}]}) | 118 {'name': 'problems', 'type': 'array', 'basetype': 'int', 'size': 99}]}) |
111 | 119 |
112 def testModulo(self): | 120 def testModulo(self): |
113 self._RunTest('No expression %', 'No expression %', {}) | 121 self._RunTest('No expression %', 'No expression %', {}) |
114 self._RunTest('% before {{3 + 4}}', '% before 7', {}) | 122 self._RunTest('% before {{3 + 4}}', '% before 7', {}) |
115 self._RunTest('{{2**8}} % after', '256 % after', {}) | 123 self._RunTest('{{2**8}} % after', '256 % after', {}) |
116 self._RunTest('inside {{8 % 3}}', 'inside 2', {}) | 124 self._RunTest('inside {{8 % 3}}', 'inside 2', {}) |
117 self._RunTest('Everywhere % {{8 % 3}} %', 'Everywhere % 2 %', {}) | 125 self._RunTest('Everywhere % {{8 % 3}} %', 'Everywhere % 2 %', {}) |
118 | 126 |
| 127 @mock.patch('easy_template.TemplateToPython') |
| 128 @mock.patch('sys.stdout', mock.Mock()) |
| 129 def testMainArgParsing(self, mock_template_to_python): |
| 130 easy_template.main([__file__]) |
| 131 mock_template_to_python.assert_called() |
| 132 |
119 | 133 |
120 if __name__ == '__main__': | 134 if __name__ == '__main__': |
121 unittest.main() | 135 unittest.main() |
OLD | NEW |