MCPcopy Index your code
hub / github.com/python/cpython / test_caching

Method test_caching

Lib/test/test_logging.py:6266–6320  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

6264 self.assertIs(unpickled, logger)
6265
6266 def test_caching(self):
6267 root = self.root_logger
6268 logger1 = logging.getLogger("abc")
6269 logger2 = logging.getLogger("abc.def")
6270
6271 # Set root logger level and ensure cache is empty
6272 root.setLevel(logging.ERROR)
6273 self.assertEqual(logger2.getEffectiveLevel(), logging.ERROR)
6274 self.assertEqual(logger2._cache, {})
6275
6276 # Ensure cache is populated and calls are consistent
6277 self.assertTrue(logger2.isEnabledFor(logging.ERROR))
6278 self.assertFalse(logger2.isEnabledFor(logging.DEBUG))
6279 self.assertEqual(logger2._cache, {logging.ERROR: True, logging.DEBUG: False})
6280 self.assertEqual(root._cache, {})
6281 self.assertTrue(logger2.isEnabledFor(logging.ERROR))
6282
6283 # Ensure root cache gets populated
6284 self.assertEqual(root._cache, {})
6285 self.assertTrue(root.isEnabledFor(logging.ERROR))
6286 self.assertEqual(root._cache, {logging.ERROR: True})
6287
6288 # Set parent logger level and ensure caches are emptied
6289 logger1.setLevel(logging.CRITICAL)
6290 self.assertEqual(logger2.getEffectiveLevel(), logging.CRITICAL)
6291 self.assertEqual(logger2._cache, {})
6292
6293 # Ensure logger2 uses parent logger's effective level
6294 self.assertFalse(logger2.isEnabledFor(logging.ERROR))
6295
6296 # Set level to NOTSET and ensure caches are empty
6297 logger2.setLevel(logging.NOTSET)
6298 self.assertEqual(logger2.getEffectiveLevel(), logging.CRITICAL)
6299 self.assertEqual(logger2._cache, {})
6300 self.assertEqual(logger1._cache, {})
6301 self.assertEqual(root._cache, {})
6302
6303 # Verify logger2 follows parent and not root
6304 self.assertFalse(logger2.isEnabledFor(logging.ERROR))
6305 self.assertTrue(logger2.isEnabledFor(logging.CRITICAL))
6306 self.assertFalse(logger1.isEnabledFor(logging.ERROR))
6307 self.assertTrue(logger1.isEnabledFor(logging.CRITICAL))
6308 self.assertTrue(root.isEnabledFor(logging.ERROR))
6309
6310 # Disable logging in manager and ensure caches are clear
6311 logging.disable()
6312 self.assertEqual(logger2.getEffectiveLevel(), logging.CRITICAL)
6313 self.assertEqual(logger2._cache, {})
6314 self.assertEqual(logger1._cache, {})
6315 self.assertEqual(root._cache, {})
6316
6317 # Ensure no loggers are enabled
6318 self.assertFalse(logger1.isEnabledFor(logging.CRITICAL))
6319 self.assertFalse(logger2.isEnabledFor(logging.CRITICAL))
6320 self.assertFalse(root.isEnabledFor(logging.CRITICAL))
6321
6322
6323class BaseFileTest(BaseTest):

Callers

nothing calls this directly

Calls 8

getLoggerMethod · 0.80
assertTrueMethod · 0.80
assertFalseMethod · 0.80
setLevelMethod · 0.45
assertEqualMethod · 0.45
getEffectiveLevelMethod · 0.45
isEnabledForMethod · 0.45
disableMethod · 0.45

Tested by

no test coverage detected