aboutsummaryrefslogtreecommitdiff
path: root/absl/logging/tests
diff options
context:
space:
mode:
authorJamie Tsao <mrpi@google.com>2017-11-16 18:38:54 -0800
committerCopybara-Service <copybara-piper@google.com>2017-11-16 18:39:12 -0800
commit42ad02f60847b741aa409829be75ec80f3256ff6 (patch)
tree2b06c79add84ec7f5a8ec396e0b0020af538646a /absl/logging/tests
parent6d10f51623cbeb4bf08cd6326771746516a6eb6c (diff)
downloadabsl-py-42ad02f60847b741aa409829be75ec80f3256ff6.tar.gz
Automated g4 rollback of changelist 176037478
PiperOrigin-RevId: 176055358
Diffstat (limited to 'absl/logging/tests')
-rw-r--r--absl/logging/tests/logging_test.py54
1 files changed, 51 insertions, 3 deletions
diff --git a/absl/logging/tests/logging_test.py b/absl/logging/tests/logging_test.py
index f6eddb4..0dc1c24 100644
--- a/absl/logging/tests/logging_test.py
+++ b/absl/logging/tests/logging_test.py
@@ -326,6 +326,7 @@ class ABSLLoggerTest(absltest.TestCase):
mock_code_0 = mock.Mock()
mock_code_0.co_filename = logging_file
mock_code_0.co_name = 'LoggingLog'
+ mock_code_0.co_firstlineno = 124
mock_frame_0.f_code = mock_code_0
mock_frame_0.f_lineno = 125
@@ -334,6 +335,7 @@ class ABSLLoggerTest(absltest.TestCase):
mock_code_1 = mock.Mock()
mock_code_1.co_filename = 'myfile.py'
mock_code_1.co_name = 'Method1'
+ mock_code_1.co_firstlineno = 124
mock_frame_1.f_code = mock_code_1
mock_frame_1.f_lineno = 125
@@ -342,6 +344,7 @@ class ABSLLoggerTest(absltest.TestCase):
mock_code_2 = mock.Mock()
mock_code_2.co_filename = 'myfile.py'
mock_code_2.co_name = 'Method2'
+ mock_code_2.co_firstlineno = 124
mock_frame_2.f_code = mock_code_2
mock_frame_2.f_lineno = 125
@@ -350,11 +353,22 @@ class ABSLLoggerTest(absltest.TestCase):
mock_code_3 = mock.Mock()
mock_code_3.co_filename = 'myfile.py'
mock_code_3.co_name = 'Method3'
+ mock_code_3.co_firstlineno = 124
mock_frame_3.f_code = mock_code_3
mock_frame_3.f_lineno = 125
+ # Set up mock frame 4 that has the same function name as frame 2.
+ mock_frame_4 = mock.Mock()
+ mock_code_4 = mock.Mock()
+ mock_code_4.co_filename = 'myfile.py'
+ mock_code_4.co_name = 'Method2'
+ mock_code_4.co_firstlineno = 248
+ mock_frame_4.f_code = mock_code_4
+ mock_frame_4.f_lineno = 249
+
# Tie them together.
- mock_frame_3.f_back = None
+ mock_frame_4.f_back = None
+ mock_frame_3.f_back = mock_frame_4
mock_frame_2.f_back = mock_frame_3
mock_frame_1.f_back = mock_frame_2
mock_frame_0.f_back = mock_frame_1
@@ -368,6 +382,7 @@ class ABSLLoggerTest(absltest.TestCase):
def tearDown(self):
mock.patch.stopall()
+ self.logger._frames_to_skip.clear()
def test_constructor_without_level(self):
self.logger = logging.ABSLLogger('')
@@ -388,17 +403,45 @@ class ABSLLoggerTest(absltest.TestCase):
expected_name = 'Method2'
self.assertEqual(expected_name, self.logger.findCaller()[2])
+ def test_find_caller_skip_method1_and_method2(self):
+ self.set_up_mock_frames()
+ self.logger.register_frame_to_skip('myfile.py', 'Method1')
+ self.logger.register_frame_to_skip('myfile.py', 'Method2')
+ expected_name = 'Method3'
+ self.assertEqual(expected_name, self.logger.findCaller()[2])
+
def test_find_caller_skip_method1_and_method3(self):
self.set_up_mock_frames()
self.logger.register_frame_to_skip('myfile.py', 'Method1')
- # Skiping Method3 should change nothing since Method2 should be hit.
+ # Skipping Method3 should change nothing since Method2 should be hit.
self.logger.register_frame_to_skip('myfile.py', 'Method3')
expected_name = 'Method2'
self.assertEqual(expected_name, self.logger.findCaller()[2])
+ def test_find_caller_skip_method1_and_method4(self):
+ self.set_up_mock_frames()
+ self.logger.register_frame_to_skip('myfile.py', 'Method1')
+ # Skipping frame 4's Method2 should change nothing for frame 2's Method2.
+ self.logger.register_frame_to_skip('myfile.py', 'Method2', 248)
+ expected_name = 'Method2'
+ expected_frame_lineno = 125
+ self.assertEqual(expected_name, self.logger.findCaller()[2])
+ self.assertEqual(expected_frame_lineno, self.logger.findCaller()[1])
+
+ def test_find_caller_skip_method1_method2_and_method3(self):
+ self.set_up_mock_frames()
+ self.logger.register_frame_to_skip('myfile.py', 'Method1')
+ self.logger.register_frame_to_skip('myfile.py', 'Method2', 124)
+ self.logger.register_frame_to_skip('myfile.py', 'Method3')
+ expected_name = 'Method2'
+ expected_frame_lineno = 249
+ self.assertEqual(expected_name, self.logger.findCaller()[2])
+ self.assertEqual(expected_frame_lineno, self.logger.findCaller()[1])
+
@unittest.skipIf(six.PY2, 'stack_info is only supported in Python 3.')
def test_find_caller_stack_info(self):
self.set_up_mock_frames()
+ self.logger.register_frame_to_skip('myfile.py', 'Method1')
with mock.patch.object(traceback, 'print_stack') as print_stack:
self.assertEqual(
('myfile.py', 125, 'Method2', 'Stack (most recent call last):'),
@@ -456,7 +499,12 @@ class ABSLLoggerTest(absltest.TestCase):
# This is basically just making sure that if I put something in a
# list, it actually appears in that list.
frame_tuple = ('file', 'method')
- self.logger.register_frame_to_skip(frame_tuple[0], frame_tuple[1])
+ self.logger.register_frame_to_skip(*frame_tuple)
+ self.assertIn(frame_tuple, self.logger._frames_to_skip)
+
+ def test_register_frame_to_skip_with_lineno(self):
+ frame_tuple = ('file', 'method', 123)
+ self.logger.register_frame_to_skip(*frame_tuple)
self.assertIn(frame_tuple, self.logger._frames_to_skip)
def test_logger_cannot_be_disabled(self):