Files
Samsara/tests/test_summary.py

36 lines
1.8 KiB
Python

import unittest
from samsara.analyzers.summary import summarize
from samsara.analyzers.assessment import assess
from samsara.collectors.demo import collect_demo, LINUX_DEMO_HOST, DEMO_HOST
class SummaryTests(unittest.TestCase):
def test_os_version_workload_and_schedule_evidence(self):
for host, version in [(LINUX_DEMO_HOST, '9.4'), (DEMO_HOST, '2022')]:
data = collect_demo(host)
summary = summarize(data, assess(data))
self.assertEqual(summary['version'], version)
self.assertTrue(summary['software'])
self.assertTrue(summary['jobs'])
self.assertEqual(summary['risk_score'], assess(data)['score'])
self.assertTrue(all('evidence' in row for row in summary['software']))
def test_unknown_version_not_kernel_and_disabled_jobs_not_active(self):
data = collect_demo(LINUX_DEMO_HOST)
data['server']['operating_system'] = 'Enterprise Linux'
data['server']['os_build'] = '5.14.0'
data['inventory']['tasks'] = [{'name': 'disabled', 'enabled': False}]
data['inventory']['software'] = [{'name': 'libsqlite3'}, {'name': 'nginx-doc'}]
data['inventory']['services'] = []
summary = summarize(data, assess(data))
self.assertEqual(summary['version'], 'Not collected')
self.assertEqual(summary['jobs'], [])
self.assertEqual(summary['software'], [])
def test_explicit_version_and_missing_schedule(self):
data = collect_demo(LINUX_DEMO_HOST)
data['server']['os_version'] = '9.5'
data['inventory']['tasks'] = [{'name': 'backup', 'enabled': True}]
summary = summarize(data, assess(data))
self.assertEqual(summary['version'], '9.5')
self.assertEqual(summary['jobs'][0]['schedule'], 'Schedule not collected')