xref: /aosp_15_r20/external/autotest/autotest_lib/tko/db_unittest.py (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
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