def test_logging(self): # NOTE(gtt): Using different topic to make tests run in parallel topic = 'test_logging_%s_driver_%s' % (self.priority, self.driver) self.config(driver=[self.driver], topics=[topic], group='oslo_messaging_notifications') listener = self.useFixture( utils.NotificationFixture(self.conf, self.url, [topic])) log_notify = oslo_messaging.LoggingNotificationHandler(self.url) log = logging.getLogger(topic) log.setLevel(logging.DEBUG) log.addHandler(log_notify) log_method = getattr(log, self.priority) log_method('Test logging at priority: %s' % self.priority) events = listener.get_events(timeout=1) self.assertEqual(len(events), 1) info_event = events[0] self.assertEqual(info_event[0], self.priority) self.assertEqual(info_event[1], 'logrecord') for key in ['name', 'thread', 'extra', 'process', 'funcName', 'levelno', 'processName', 'pathname', 'lineno', 'msg', 'exc_info', 'levelname']: self.assertTrue(key in info_event[2])
def test_logger(self, mock_utcnow): with mock.patch('oslo_messaging.transport.get_transport', return_value=test_notifier._FakeTransport(self.conf)): self.logger = oslo_messaging.LoggingNotificationHandler('test://') mock_utcnow.return_value = datetime.datetime.utcnow() levelno = getattr(logging, self.priority.upper(), 42) record = logging.LogRecord('foo', levelno, '/foo/bar', 42, 'Something happened', None, None) self.logger.emit(record) n = oslo_messaging.notify._impl_test.NOTIFICATIONS[0][1] self.assertEqual(getattr(self, 'queue', self.priority.upper()), n['priority']) self.assertEqual('logrecord', n['event_type']) self.assertEqual(str(timeutils.utcnow()), n['timestamp']) self.assertEqual(None, n['publisher_id']) self.assertEqual( { 'process': os.getpid(), 'funcName': None, 'name': 'foo', 'thread': None, 'levelno': levelno, 'processName': 'MainProcess', 'pathname': '/foo/bar', 'lineno': 42, 'msg': 'Something happened', 'exc_info': None, 'levelname': logging.getLevelName(levelno), 'extra': None }, n['payload'])
def test_logging(self): # NOTE(gtt): Using different topic to make tests run in parallel topic = 'test_logging_%s_driver_%s' % (self.priority, self.driver) if self.notify_url.startswith("kafka://"): self.conf.set_override('consumer_group', str(uuid.uuid4()), group='oslo_messaging_kafka') self.config(driver=[self.driver], topics=[topic], group='oslo_messaging_notifications') listener = self.useFixture( utils.NotificationFixture(self.conf, self.notify_url, [topic])) log_notify = oslo_messaging.LoggingNotificationHandler(self.notify_url) log = logging.getLogger(topic) log.setLevel(logging.DEBUG) log.addHandler(log_notify) log_method = getattr(log, self.priority) log_method('Test logging at priority: %s' % self.priority) events = listener.get_events(timeout=15) self.assertEqual(1, len(events)) info_event = events[0] self.assertEqual(self.priority, info_event[0]) self.assertEqual('logrecord', info_event[1]) for key in [ 'name', 'thread', 'extra', 'process', 'funcName', 'levelno', 'processName', 'pathname', 'lineno', 'msg', 'exc_info', 'levelname' ]: self.assertIn(key, info_event[2])