Пример #1
0
 def test_update_extras(self):
     a = log.KeywordArgumentAdapter(self.mock_log, {})
     msg, kwargs = a.process(
         'message', {
             'context': 'some context object',
             'instance': 'instance identifier',
             'resource_uuid': 'UUID for instance',
             'anything': 'goes'
         })
     self.assertEqual(
         kwargs,
         {
             'extra': {
                 'anything':
                 'goes',
                 'context':
                 'some context object',
                 'extra_keys':
                 ['anything', 'context', 'instance', 'resource_uuid'],
                 'instance':
                 'instance identifier',
                 'resource_uuid':
                 'UUID for instance'
             }
         },
     )
Пример #2
0
 def test_pass_args_via_debug(self):
     a = log.KeywordArgumentAdapter(self.mock_log, {})
     message = 'message'
     exc_message = 'exception'
     key = 'name'
     val = 'value'
     a.debug(message, name=val, exc_info=exc_message)
     # The adapter implementation for debug() is different for
     # python 3, so we expect a different method to be called
     # internally.
     if six.PY3:
         self.mock_log._log.assert_called_once_with(logging.DEBUG,
                                                    message, (),
                                                    extra={
                                                        key: val,
                                                        'extra_keys': [key]
                                                    },
                                                    exc_info=exc_message)
     else:
         self.mock_log.debug.assert_called_once_with(message,
                                                     extra={
                                                         key: val,
                                                         'extra_keys':
                                                         [key]
                                                     },
                                                     exc_info=exc_message)
Пример #3
0
 def test_pass_args_via_debug(self):
     a = log.KeywordArgumentAdapter(self.mock_log, {})
     a.debug('message', name='value', exc_info='exception')
     # The adapter implementation for debug() is different for
     # python 3, so we expect a different method to be called
     # internally.
     if six.PY3:
         self.mock_log._log.assert_called_once_with(
             logging.DEBUG,
             'message',
             (),
             extra={
                 'name': 'value',
                 'extra_keys': ['name']
             },
             exc_info='exception',
         )
     else:
         self.mock_log.debug.assert_called_once_with(
             'message',
             extra={
                 'name': 'value',
                 'extra_keys': ['name']
             },
             exc_info='exception',
         )
Пример #4
0
 def test_include_constructor_extras(self):
     key = 'foo'
     val = 'blah'
     data = {key: val}
     a = log.KeywordArgumentAdapter(self.mock_log, data)
     msg, kwargs = a.process('message', {})
     self.assertEqual(kwargs, {'extra': {key: val, 'extra_keys': [key]}})
Пример #5
0
 def test_include_constructor_extras(self):
     a = log.KeywordArgumentAdapter(self.mock_log, {'foo': 'blah'})
     msg, kwargs = a.process('message', {})
     self.assertEqual(kwargs,
                      {'extra': {
                          'foo': 'blah',
                          'extra_keys': ['foo']
                      }})
 def test_pass_through_exc_info(self):
     a = log.KeywordArgumentAdapter(self.mock_log, {})
     msg, kwargs = a.process('message', {'exc_info': 'the info'})
     self.assertEqual(
         kwargs,
         {'extra': {'extra_keys': []},
          'exc_info': 'the info'},
     )
 def test_pass_args_to_log(self):
     a = log.KeywordArgumentAdapter(self.mock_log, {})
     a.log(logging.DEBUG, 'message', name='value', exc_info='exception')
     if six.PY3:
         self.mock_log._log.assert_called_once_with(
             logging.DEBUG,
             'message',
             (),
             extra={'name': 'value',
                    'extra_keys': ['name']},
             exc_info='exception',
         )
     else:
         self.mock_log.log.assert_called_once_with(
             logging.DEBUG,
             'message',
             extra={'name': 'value',
                    'extra_keys': ['name']},
             exc_info='exception',
         )
Пример #8
0
    def test_update_extras(self):
        a = log.KeywordArgumentAdapter(self.mock_log, {})
        data = {
            'context': 'some context object',
            'instance': 'instance identifier',
            'resource_uuid': 'UUID for instance',
            'anything': 'goes'
        }
        expected = copy.copy(data)

        msg, kwargs = a.process('message', data)
        self.assertEqual(
            kwargs, {
                'extra': {
                    'anything': expected['anything'],
                    'context': expected['context'],
                    'extra_keys': sorted(expected.keys()),
                    'instance': expected['instance'],
                    'resource_uuid': expected['resource_uuid']
                }
            })
Пример #9
0
 def test_pass_args_to_log(self):
     a = log.KeywordArgumentAdapter(self.mock_log, {})
     message = 'message'
     exc_message = 'exception'
     key = 'name'
     val = 'value'
     a.log(logging.DEBUG, message, name=val, exc_info=exc_message)
     if six.PY3:
         self.mock_log._log.assert_called_once_with(logging.DEBUG,
                                                    message, (),
                                                    extra={
                                                        key: val,
                                                        'extra_keys': [key]
                                                    },
                                                    exc_info=exc_message)
     else:
         self.mock_log.log.assert_called_once_with(logging.DEBUG,
                                                   message,
                                                   extra={
                                                       key: val,
                                                       'extra_keys': [key]
                                                   },
                                                   exc_info=exc_message)
Пример #10
0
 def test_empty_kwargs(self):
     a = log.KeywordArgumentAdapter(self.mock_log, {})
     msg, kwargs = a.process('message', {})
     self.assertEqual(kwargs, {'extra': {'extra_keys': []}})