|
13 | 13 | # limitations under the License.
|
14 | 14 |
|
15 | 15 | import logging
|
16 |
| -import mock |
17 | 16 | import os
|
18 | 17 | import shutil
|
19 | 18 | import unittest
|
20 | 19 |
|
| 20 | +import mock |
| 21 | + |
21 | 22 | from opencensus.ext.azure import log_exporter
|
22 | 23 |
|
23 | 24 | TEST_FOLDER = os.path.abspath('.test.logs')
|
@@ -133,3 +134,34 @@ def test_log_record_to_envelope(self):
|
133 | 134 | envelope.iKey,
|
134 | 135 | '12345678-1234-5678-abcd-12345678abcd')
|
135 | 136 | handler.close()
|
| 137 | + |
| 138 | + @mock.patch('requests.post', return_value=mock.Mock()) |
| 139 | + def test_log_record_with_custom_properties(self, requests_mock): |
| 140 | + logger = logging.getLogger(self.id()) |
| 141 | + handler = log_exporter.AzureLogHandler( |
| 142 | + instrumentation_key='12345678-1234-5678-abcd-12345678abcd', |
| 143 | + storage_path=os.path.join(TEST_FOLDER, self.id()), |
| 144 | + ) |
| 145 | + logger.addHandler(handler) |
| 146 | + logger.warning('action', {'key-1': 'value-1', 'key-2': 'value-2'}) |
| 147 | + handler.close() |
| 148 | + post_body = requests_mock.call_args_list[0][1]['data'] |
| 149 | + self.assertTrue('action' in post_body) |
| 150 | + self.assertTrue('key-1' in post_body) |
| 151 | + self.assertTrue('key-2' in post_body) |
| 152 | + |
| 153 | + @mock.patch('requests.post', return_value=mock.Mock()) |
| 154 | + def test_log_with_invalid_custom_properties(self, requests_mock): |
| 155 | + logger = logging.getLogger(self.id()) |
| 156 | + handler = log_exporter.AzureLogHandler( |
| 157 | + instrumentation_key='12345678-1234-5678-abcd-12345678abcd', |
| 158 | + storage_path=os.path.join(TEST_FOLDER, self.id()), |
| 159 | + ) |
| 160 | + logger.addHandler(handler) |
| 161 | + logger.warning('action_1_%s', None) |
| 162 | + logger.warning('action_2_%s', 'not_a_dict') |
| 163 | + handler.close() |
| 164 | + self.assertEqual(len(os.listdir(handler.storage.path)), 0) |
| 165 | + post_body = requests_mock.call_args_list[0][1]['data'] |
| 166 | + self.assertTrue('action_1' in post_body) |
| 167 | + self.assertTrue('action_2' in post_body) |
0 commit comments