|
46 | 46 |
|
47 | 47 |
|
48 | 48 | TEST_AUTH_POLICY = "TEST_AUTH_POLICY"
|
| 49 | +TEST_TEMP_DIR = "TEST_TEMP_DIR" |
49 | 50 |
|
50 | 51 |
|
51 | 52 | def throw(exc_type, *args, **kwargs):
|
@@ -126,6 +127,104 @@ def test_constructor(self):
|
126 | 127 | self.assertEqual(base._storage_min_retry_interval, 100)
|
127 | 128 | self.assertEqual(base._storage_directory, "test/path")
|
128 | 129 |
|
| 130 | + @mock.patch("azure.monitor.opentelemetry.exporter.export._base.tempfile.gettempdir") |
| 131 | + def test_constructor_no_storage_directory(self, mock_get_temp_dir): |
| 132 | + mock_get_temp_dir.return_value = TEST_TEMP_DIR |
| 133 | + base = BaseExporter( |
| 134 | + api_version="2021-02-10_Preview", |
| 135 | + connection_string="InstrumentationKey=4321abcd-5678-4efa-8abc-1234567890ab;IngestionEndpoint=https://westus-0.in.applicationinsights.azure.com/", |
| 136 | + disable_offline_storage=False, |
| 137 | + distro_version="1.0.0", |
| 138 | + storage_maintenance_period=30, |
| 139 | + storage_max_size=1000, |
| 140 | + storage_min_retry_interval=100, |
| 141 | + storage_retention_period=2000, |
| 142 | + ) |
| 143 | + self.assertEqual( |
| 144 | + base._instrumentation_key, |
| 145 | + "4321abcd-5678-4efa-8abc-1234567890ab", |
| 146 | + ) |
| 147 | + self.assertEqual( |
| 148 | + base._endpoint, |
| 149 | + "https://westus-0.in.applicationinsights.azure.com/", |
| 150 | + ) |
| 151 | + self.assertEqual(base._distro_version, "1.0.0") |
| 152 | + self.assertIsNotNone(base.storage) |
| 153 | + self.assertEqual(base.storage._max_size, 1000) |
| 154 | + self.assertEqual(base.storage._retention_period, 2000) |
| 155 | + self.assertEqual(base._storage_maintenance_period, 30) |
| 156 | + self.assertEqual(base._timeout, 10) |
| 157 | + self.assertEqual(base._api_version, "2021-02-10_Preview") |
| 158 | + self.assertEqual(base._storage_min_retry_interval, 100) |
| 159 | + self.assertEqual( |
| 160 | + base._storage_directory, |
| 161 | + os.path.join( |
| 162 | + TEST_TEMP_DIR, "Microsoft/AzureMonitor", "opentelemetry-python-" + "4321abcd-5678-4efa-8abc-1234567890ab" |
| 163 | + ) |
| 164 | + ) |
| 165 | + mock_get_temp_dir.assert_called_once() |
| 166 | + |
| 167 | + @mock.patch("azure.monitor.opentelemetry.exporter.export._base.tempfile.gettempdir") |
| 168 | + def test_constructor_disable_offline_storage(self, mock_get_temp_dir): |
| 169 | + mock_get_temp_dir.side_effect = Exception() |
| 170 | + base = BaseExporter( |
| 171 | + api_version="2021-02-10_Preview", |
| 172 | + connection_string="InstrumentationKey=4321abcd-5678-4efa-8abc-1234567890ab;IngestionEndpoint=https://westus-0.in.applicationinsights.azure.com/", |
| 173 | + disable_offline_storage=True, |
| 174 | + distro_version="1.0.0", |
| 175 | + storage_maintenance_period=30, |
| 176 | + storage_max_size=1000, |
| 177 | + storage_min_retry_interval=100, |
| 178 | + storage_retention_period=2000, |
| 179 | + ) |
| 180 | + self.assertEqual( |
| 181 | + base._instrumentation_key, |
| 182 | + "4321abcd-5678-4efa-8abc-1234567890ab", |
| 183 | + ) |
| 184 | + self.assertEqual( |
| 185 | + base._endpoint, |
| 186 | + "https://westus-0.in.applicationinsights.azure.com/", |
| 187 | + ) |
| 188 | + self.assertEqual(base._distro_version, "1.0.0") |
| 189 | + self.assertIsNone(base.storage) |
| 190 | + self.assertEqual(base._storage_maintenance_period, 30) |
| 191 | + self.assertEqual(base._timeout, 10) |
| 192 | + self.assertEqual(base._api_version, "2021-02-10_Preview") |
| 193 | + self.assertEqual(base._storage_min_retry_interval, 100) |
| 194 | + self.assertIsNone(base._storage_directory) |
| 195 | + mock_get_temp_dir.assert_not_called() |
| 196 | + |
| 197 | + @mock.patch("azure.monitor.opentelemetry.exporter.export._base.tempfile.gettempdir") |
| 198 | + def test_constructor_disable_offline_storage_with_storage_directory(self, mock_get_temp_dir): |
| 199 | + mock_get_temp_dir.side_effect = Exception() |
| 200 | + base = BaseExporter( |
| 201 | + api_version="2021-02-10_Preview", |
| 202 | + connection_string="InstrumentationKey=4321abcd-5678-4efa-8abc-1234567890ab;IngestionEndpoint=https://westus-0.in.applicationinsights.azure.com/", |
| 203 | + disable_offline_storage=True, |
| 204 | + distro_version="1.0.0", |
| 205 | + storage_maintenance_period=30, |
| 206 | + storage_max_size=1000, |
| 207 | + storage_min_retry_interval=100, |
| 208 | + storage_directory="test/path", |
| 209 | + storage_retention_period=2000, |
| 210 | + ) |
| 211 | + self.assertEqual( |
| 212 | + base._instrumentation_key, |
| 213 | + "4321abcd-5678-4efa-8abc-1234567890ab", |
| 214 | + ) |
| 215 | + self.assertEqual( |
| 216 | + base._endpoint, |
| 217 | + "https://westus-0.in.applicationinsights.azure.com/", |
| 218 | + ) |
| 219 | + self.assertEqual(base._distro_version, "1.0.0") |
| 220 | + self.assertIsNone(base.storage) |
| 221 | + self.assertEqual(base._storage_maintenance_period, 30) |
| 222 | + self.assertEqual(base._timeout, 10) |
| 223 | + self.assertEqual(base._api_version, "2021-02-10_Preview") |
| 224 | + self.assertEqual(base._storage_min_retry_interval, 100) |
| 225 | + self.assertEqual(base._storage_directory, "test/path") |
| 226 | + mock_get_temp_dir.assert_not_called() |
| 227 | + |
129 | 228 | @mock.patch("azure.monitor.opentelemetry.exporter.export._base._format_storage_telemetry_item")
|
130 | 229 | @mock.patch.object(TelemetryItem, "from_dict")
|
131 | 230 | def test_transmit_from_storage_success(self, dict_patch, format_patch):
|
|
0 commit comments