log_test.py 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. from isc.log.log import *
  2. import unittest
  3. import os
  4. import sys
  5. import tempfile
  6. class TestRotateFileHandler(unittest.TestCase):
  7. def setUp(self):
  8. self.FILE_LOG1 = tempfile.mkstemp()
  9. self.FILE_LOG2 = tempfile.mkstemp()
  10. self.FILE_LOG3 = tempfile.mkstemp()
  11. self.handler = NSFileLogHandler(filename = self.FILE_LOG1[1], maxBytes = 1024, backupCount = 5)
  12. def test_shouldRollover(self):
  13. if(os.path.exists(self.FILE_LOG1[1])):
  14. os.remove(self.FILE_LOG1[1])
  15. record = logging.LogRecord(None, None, "", 0, "rotate file handler", (), None, None)
  16. self.handler.shouldRollover(record)
  17. self.assertTrue(os.path.exists(self.FILE_LOG1[1]))
  18. def test_update_config(self):
  19. self.handler.update_config(self.FILE_LOG2[1], 3, 512)
  20. self.assertEqual(self.handler.baseFilename, self.FILE_LOG2[1])
  21. self.assertEqual(self.handler.maxBytes, 512)
  22. self.assertEqual(self.handler.backupCount, 3)
  23. dir = os.path.split(self.FILE_LOG3[1])
  24. path = dir[0] + "path_not_exists"
  25. update_file = os.path.join(path, dir[1])
  26. if not os.path.exists(path):
  27. self.handler.update_config(update_file, 4, 1024)
  28. self.assertEqual(self.handler.baseFilename, self.FILE_LOG2[1])
  29. self.assertEqual(self.handler.maxBytes, 1024)
  30. self.assertEqual(self.handler.backupCount, 4)
  31. def tearDown(self):
  32. os.close(self.FILE_LOG1[0])
  33. os.close(self.FILE_LOG2[0])
  34. os.unlink(self.FILE_LOG1[1])
  35. os.unlink(self.FILE_LOG2[1])
  36. self.handler.flush()
  37. self.handler.close()
  38. class TestLogging(unittest.TestCase):
  39. def setUp(self):
  40. self.FILE_STREAM_LOG1 = tempfile.mkstemp()
  41. self.FILE_STREAM_LOG2 = tempfile.mkstemp()
  42. self.FILE_STREAM_LOG3 = tempfile.mkstemp()
  43. self.file_stream_logger = NSLogger('File_Stream_Logger', self.FILE_STREAM_LOG1[1],
  44. 'debug', 5, 1024, True)
  45. self.syslog_logger = NSLogger('SysLogger', '', 'info', 5, 1024, False)
  46. def test_logging_init(self):
  47. self.assertNotEqual(self.file_stream_logger._file_handler, None)
  48. self.assertNotEqual(self.file_stream_logger._stream_handler, None)
  49. self.assertEqual(self.file_stream_logger._syslog_handler, None)
  50. ret = self.file_stream_logger._file_handler in self.file_stream_logger.handlers
  51. self.assertTrue(ret)
  52. ret = self.file_stream_logger._stream_handler in self.file_stream_logger.handlers
  53. self.assertTrue(ret)
  54. ret = self.file_stream_logger._syslog_handler in self.file_stream_logger.handlers
  55. self.assertFalse(ret)
  56. logLevel = LEVELS.get('debug', logging.NOTSET)
  57. self.assertEqual(self.file_stream_logger.getEffectiveLevel(), logLevel)
  58. self.assertEqual(self.syslog_logger._file_handler, None)
  59. self.assertEqual(self.syslog_logger._stream_handler, None)
  60. self.assertNotEqual(self.syslog_logger._syslog_handler, None)
  61. ret = self.syslog_logger._file_handler in self.syslog_logger.handlers
  62. self.assertFalse(ret)
  63. ret = self.syslog_logger._stream_handler in self.syslog_logger.handlers
  64. self.assertFalse(ret)
  65. ret = self.syslog_logger._syslog_handler in self.syslog_logger.handlers
  66. self.assertTrue(ret)
  67. logLevel = LEVELS.get('info', logging.NOTSET)
  68. self.assertEqual(self.syslog_logger.getEffectiveLevel(), logLevel)
  69. def test_add_rotate_handler(self):
  70. if(self.syslog_logger._file_handler in self.syslog_logger.handlers):
  71. self.syslog_logger.removeHandler(self.syslog_logger._file_handler)
  72. self.syslog_logger._add_rotate_handler('', 5, 1024)
  73. ret = self.syslog_logger._file_handler in self.syslog_logger.handlers
  74. self.assertFalse(ret)
  75. self.syslog_logger._add_rotate_handler(self.FILE_STREAM_LOG1[1], 5, 1024)
  76. ret = self.syslog_logger._file_handler in self.syslog_logger.handlers
  77. self.assertTrue(ret)
  78. def test_add_stream_handler(self):
  79. if(self.file_stream_logger._stream_handler in self.file_stream_logger.handlers):
  80. self.file_stream_logger.removeHandler(self.file_stream_logger._stream_handler)
  81. self.file_stream_logger._add_stream_handler()
  82. ret = self.file_stream_logger._stream_handler in self.file_stream_logger.handlers
  83. self.assertTrue(ret)
  84. def test_add_syslog_handler(self):
  85. if(self.syslog_logger._syslog_handler in self.syslog_logger.handlers):
  86. self.syslog_logger.removeHandler(self.syslog_logger._syslog_handler)
  87. self.syslog_logger._add_syslog_handler()
  88. ret = self.syslog_logger._syslog_handler in self.syslog_logger.handlers
  89. self.assertTrue(ret)
  90. def test_update_rotate_handler(self):
  91. self.file_stream_logger._update_rotate_handler(self.FILE_STREAM_LOG2[1], 4, 1024)
  92. ret = self.file_stream_logger._file_handler in self.file_stream_logger.handlers
  93. self.assertTrue(ret)
  94. self.file_stream_logger._update_rotate_handler('', 5, 1024)
  95. ret = self.file_stream_logger._file_handler in self.file_stream_logger.handlers
  96. self.assertFalse(ret)
  97. self.file_stream_logger._update_rotate_handler(self.FILE_STREAM_LOG1[1], 4, 1024)
  98. ret = self.file_stream_logger._file_handler in self.file_stream_logger.handlers
  99. self.assertTrue(ret)
  100. def test_update_config(self):
  101. update_config = {'log_file' : self.FILE_STREAM_LOG1[1],
  102. 'log_severity' : 'error',
  103. 'log_versions' : 4,
  104. 'log_max_bytes' : 1024}
  105. self.file_stream_logger.update_config(update_config)
  106. logLevel = LEVELS.get('error', logging.NOTSET)
  107. self.assertEqual(self.file_stream_logger.getEffectiveLevel(), logLevel)
  108. def test_log_message(self):
  109. update_config = {'log_file' : self.FILE_STREAM_LOG3[1],
  110. 'log_severity' : 'critical',
  111. 'log_versions' : 4,
  112. 'log_max_bytes' : 1024}
  113. self.file_stream_logger.update_config(update_config)
  114. self.file_stream_logger.log_message('debug', 'debug message')
  115. self.file_stream_logger.log_message('info', 'info message')
  116. self.file_stream_logger.log_message('warning', 'warning message')
  117. self.file_stream_logger.log_message('error', 'error message')
  118. self.assertTrue(os.path.exists(self.FILE_STREAM_LOG3[1]))
  119. def tearDown(self):
  120. os.close(self.FILE_STREAM_LOG1[0])
  121. os.unlink(self.FILE_STREAM_LOG1[1])
  122. os.close(self.FILE_STREAM_LOG2[0])
  123. os.unlink(self.FILE_STREAM_LOG2[1])
  124. os.close(self.FILE_STREAM_LOG3[0])
  125. os.unlink(self.FILE_STREAM_LOG3[1])
  126. if __name__ == '__main__':
  127. unittest.main()