|
6 | 6 | import os |
7 | 7 | import json |
8 | 8 | import unittest |
| 9 | +import mock |
| 10 | +from mock import patch |
9 | 11 |
|
10 | 12 | from instana.tracer import InstanaTracer |
11 | 13 | from instana.recorder import StanRecorder |
12 | 14 | from instana.agent.host import HostAgent |
| 15 | +from instana.collector.host import HostCollector |
13 | 16 | from instana.singletons import get_agent, set_agent, get_tracer, set_tracer |
| 17 | +from instana.version import VERSION |
14 | 18 |
|
15 | 19 |
|
16 | 20 | class TestHostCollector(unittest.TestCase): |
@@ -150,3 +154,36 @@ def test_prepare_payload_basics_disable_runtime_metrics(self): |
150 | 154 | self.assertIn('data', python_plugin) |
151 | 155 | self.assertIn('snapshot', python_plugin['data']) |
152 | 156 | self.assertNotIn('metrics', python_plugin['data']) |
| 157 | + |
| 158 | + @patch.object(HostCollector, "should_send_snapshot_data") |
| 159 | + def test_prepare_payload_with_snapshot_with_python_packages(self, mock_should_send_snapshot_data): |
| 160 | + mock_should_send_snapshot_data.return_value = True |
| 161 | + self.create_agent_and_setup_tracer() |
| 162 | + |
| 163 | + payload = self.agent.collector.prepare_payload() |
| 164 | + self.assertTrue(payload) |
| 165 | + self.assertIn('snapshot', payload['metrics']['plugins'][0]['data']) |
| 166 | + snapshot = payload['metrics']['plugins'][0]['data']['snapshot'] |
| 167 | + self.assertTrue(snapshot) |
| 168 | + self.assertIn('version', snapshot) |
| 169 | + self.assertGreater(len(snapshot['versions']), 5) |
| 170 | + self.assertEqual(snapshot['versions']['instana'], VERSION) |
| 171 | + self.assertIn('wrapt', snapshot['versions']) |
| 172 | + self.assertIn('fysom', snapshot['versions']) |
| 173 | + self.assertIn('opentracing', snapshot['versions']) |
| 174 | + self.assertIn('basictracer', snapshot['versions']) |
| 175 | + |
| 176 | + @patch.object(HostCollector, "should_send_snapshot_data") |
| 177 | + def test_prepare_payload_with_snapshot_disabled_python_packages(self, mock_should_send_snapshot_data): |
| 178 | + mock_should_send_snapshot_data.return_value = True |
| 179 | + os.environ["INSTANA_DISABLE_PYTHON_PACKAGE_COLLECTION"] = "TRUE" |
| 180 | + self.create_agent_and_setup_tracer() |
| 181 | + |
| 182 | + payload = self.agent.collector.prepare_payload() |
| 183 | + self.assertTrue(payload) |
| 184 | + self.assertIn('snapshot', payload['metrics']['plugins'][0]['data']) |
| 185 | + snapshot = payload['metrics']['plugins'][0]['data']['snapshot'] |
| 186 | + self.assertTrue(snapshot) |
| 187 | + self.assertIn('version', snapshot) |
| 188 | + self.assertEqual(len(snapshot['versions']), 1) |
| 189 | + self.assertEqual(snapshot['versions']['instana'], VERSION) |
0 commit comments