| OLD | NEW |
| 1 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 """Simplify unit tests based on pymox.""" | 5 """Simplify unit tests based on pymox.""" |
| 6 | 6 |
| 7 import os | 7 import os |
| 8 import random | 8 import random |
| 9 import shutil | 9 import shutil |
| 10 import string | 10 import string |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 # Override the mock with a StringIO, it's much less painful to test. | 91 # Override the mock with a StringIO, it's much less painful to test. |
| 92 self._old_stdout = sys.stdout | 92 self._old_stdout = sys.stdout |
| 93 stdout = StringIO.StringIO() | 93 stdout = StringIO.StringIO() |
| 94 stdout.flush = lambda: None | 94 stdout.flush = lambda: None |
| 95 sys.stdout = stdout | 95 sys.stdout = stdout |
| 96 | 96 |
| 97 def tearDown(self): | 97 def tearDown(self): |
| 98 try: | 98 try: |
| 99 # If sys.stdout was used, self.checkstdout() must be called. | 99 # If sys.stdout was used, self.checkstdout() must be called. |
| 100 # pylint: disable=E1101 | 100 # pylint: disable=E1101 |
| 101 self.assertEquals('', sys.stdout.getvalue()) | 101 if not sys.stdout.closed: |
| 102 self.assertEquals('', sys.stdout.getvalue()) |
| 102 except AttributeError: | 103 except AttributeError: |
| 103 pass | 104 pass |
| 104 sys.stdout = self._old_stdout | 105 sys.stdout = self._old_stdout |
| 105 | 106 |
| 106 def checkstdout(self, expected): | 107 def checkstdout(self, expected): |
| 107 value = sys.stdout.getvalue() | 108 value = sys.stdout.getvalue() |
| 108 sys.stdout.close() | 109 sys.stdout.close() |
| 109 # pylint: disable=E1101 | 110 # pylint: disable=E1101 |
| 110 self.assertEquals(expected, value) | 111 self.assertEquals(expected, value) |
| 111 | 112 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 except TypeError, e: | 146 except TypeError, e: |
| 146 raise TypeError( | 147 raise TypeError( |
| 147 'Couldn\'t mock %s in %s: %s' % (item, parent.__name__, e)) | 148 'Couldn\'t mock %s in %s: %s' % (item, parent.__name__, e)) |
| 148 | 149 |
| 149 def UnMock(self, obj, name): | 150 def UnMock(self, obj, name): |
| 150 """Restore an object inside a test.""" | 151 """Restore an object inside a test.""" |
| 151 for (parent, old_child, child_name) in self.mox.stubs.cache: | 152 for (parent, old_child, child_name) in self.mox.stubs.cache: |
| 152 if parent == obj and child_name == name: | 153 if parent == obj and child_name == name: |
| 153 setattr(parent, child_name, old_child) | 154 setattr(parent, child_name, old_child) |
| 154 break | 155 break |
| OLD | NEW |