MCPcopy Create free account
hub / github.com/dbcli/mssql-cli / test_telemetry_data_points

Method test_telemetry_data_points

tests/test_telemetry.py:31–80  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

29 os.environ['MSSQL_CLI_TELEMETRY_OPTOUT'].lower() != 'true',
30 "Only works when telemetry opt-out not set to true.")
31 def test_telemetry_data_points(self):
32 test_telemetry_client = self.build_telemetry_client()
33 test_telemetry_client.start()
34
35 try:
36 payload = test_telemetry_client.conclude(
37 service_endpoint_uri='https://vortex.data.microsoft.com/collect/v1/validate',
38 separate_process=False)
39 self.assertIsNotNone(payload, 'Payload was empty.')
40 except HTTPError:
41 self.fail('Recevied HTTP Error when validating payload against vortex.')
42
43 payload = json.loads(payload.replace("'", '"'))
44
45 expected_data_model_properties = [
46 'Reserved.ChannelUsed',
47 'Reserved.SequenceNumber',
48 'Reserved.EventId',
49 'Reserved.SessionId',
50 'Reserved.TimeSinceSessionStart',
51 'Reserved.DataModel.Source',
52 'Reserved.DataModel.EntitySchemaVersion',
53 'Reserved.DataModel.Severity',
54 'Reserved.DataModel.CorrelationId',
55 'Context.Default.SQLTools.ExeName',
56 'Context.Default.SQLTools.ExeVersion',
57 'Context.Default.SQLTools.MacAddressHash',
58 'Context.Default.SQLTools.OS.Type',
59 'Context.Default.SQLTools.OS.Version',
60 'Context.Default.SQLTools.IsDocker',
61 'Context.Default.SQLTools.User.Id',
62 'Context.Default.SQLTools.User.IsMicrosoftInternal',
63 'Context.Default.SQLTools.User.IsOptedIn',
64 'Context.Default.SQLTools.ShellType',
65 'Context.Default.SQLTools.EnvironmentVariables',
66 'Context.Default.SQLTools.Locale',
67 'Context.Default.SQLTools.StartTime',
68 'Context.Default.SQLTools.EndTime',
69 'Context.Default.SQLTools.SessionDuration',
70 'Context.Default.SQLTools.PythonVersion',
71 'Context.Default.SQLTools.ServerVersion',
72 'Context.Default.SQLTools.ServerEdition',
73 'Context.Default.SQLTools.ConnectionType',
74 ]
75
76 for record in payload:
77 properties = record['properties']
78 for prop in properties:
79 self.assertTrue(prop in expected_data_model_properties,
80 'Additional property detected: {}.'.format(prop))
81
82 def test_telemetry_vortex_format(self):
83 test_telemetry_client = self.build_telemetry_client()

Callers

nothing calls this directly

Calls 3

startMethod · 0.80
formatMethod · 0.45

Tested by

no test coverage detected