Rename application to Samsara and add assessment summary, detailed tabs and local Linux inventory

This commit is contained in:
2026-10-30 10:25:55 -07:00
parent 365f97942a
commit 967b2bd46a
37 changed files with 985 additions and 541 deletions

35
tests/test_summary.py Normal file
View File

@@ -0,0 +1,35 @@
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')