1*9c5db199SXin Li#!/usr/bin/python3 2*9c5db199SXin Li 3*9c5db199SXin Liimport sys 4*9c5db199SXin Liimport unittest 5*9c5db199SXin Li 6*9c5db199SXin Lifrom six import StringIO 7*9c5db199SXin Li 8*9c5db199SXin Liimport common 9*9c5db199SXin Lifrom autotest_lib.tko import db 10*9c5db199SXin Li 11*9c5db199SXin Li 12*9c5db199SXin Liclass LogErrorTestCase(unittest.TestCase): 13*9c5db199SXin Li """Tests for _log_error().""" 14*9c5db199SXin Li 15*9c5db199SXin Li def setUp(self): 16*9c5db199SXin Li self._old_stderr = sys.stderr 17*9c5db199SXin Li sys.stderr = self.stderr = StringIO() 18*9c5db199SXin Li 19*9c5db199SXin Li 20*9c5db199SXin Li def tearDown(self): 21*9c5db199SXin Li sys.stderr = self._old_stderr 22*9c5db199SXin Li 23*9c5db199SXin Li 24*9c5db199SXin Li def test_log_error(self): 25*9c5db199SXin Li """Test _log_error().""" 26*9c5db199SXin Li db._log_error('error message') 27*9c5db199SXin Li self.assertEqual(self.stderr.getvalue(), 'error message\n') 28*9c5db199SXin Li 29*9c5db199SXin Li 30*9c5db199SXin Liclass FormatOperationalErrorTestCase(unittest.TestCase): 31*9c5db199SXin Li """Tests for _format_operational_error().""" 32*9c5db199SXin Li 33*9c5db199SXin Li def test_format_operational_error(self): 34*9c5db199SXin Li """Test _format_operational_error().""" 35*9c5db199SXin Li got = db._format_operational_error(Exception()) 36*9c5db199SXin Li self.assertIn('An operational error occurred', got) 37*9c5db199SXin Li 38*9c5db199SXin Li 39*9c5db199SXin Liif __name__ == "__main__": 40*9c5db199SXin Li unittest.main() 41