Skip to content

Commit b6cf663

Browse files
committed
test: Add tests with snapshot data collection
Signed-off-by: Ferenc Géczi <[email protected]>
1 parent 36fd267 commit b6cf663

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

tests/platforms/test_host_collector.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,15 @@
66
import os
77
import json
88
import unittest
9+
import mock
10+
from mock import patch
911

1012
from instana.tracer import InstanaTracer
1113
from instana.recorder import StanRecorder
1214
from instana.agent.host import HostAgent
15+
from instana.collector.host import HostCollector
1316
from instana.singletons import get_agent, set_agent, get_tracer, set_tracer
17+
from instana.version import VERSION
1418

1519

1620
class TestHostCollector(unittest.TestCase):
@@ -150,3 +154,36 @@ def test_prepare_payload_basics_disable_runtime_metrics(self):
150154
self.assertIn('data', python_plugin)
151155
self.assertIn('snapshot', python_plugin['data'])
152156
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

Comments
 (0)