|
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