Add final runtime and disk usage summary to mail reports

This commit is contained in:
admin committed 2026-09-25 13:35:01 +02:00
1 parent a5a7e38853
commit be48ee85ef
13 files changed
+142 -9

No files matched your search

+8
View File
@@ -787,6 +787,7 @@ else: raise SystemExit('Unexpected Docker command')
backup_message=BytesParser(policy=policy.default).parsebytes(saved.read_bytes())
self.assertIn('OK (Dateien vorhanden, Größen und Abschlussmarker',backup_message.get_content())
self.assertEqual(Path('/usr/local/lib/app-backup/report.py').read_bytes(),(REPO/'lib/report.py').read_bytes())
self.assertEqual(Path('/usr/local/lib/app-backup/usage.py').read_bytes(),(REPO/'lib/usage.py').read_bytes())
self.assertEqual(Path('/usr/local/lib/app-backup/restore_test.py').read_bytes(),(REPO/'lib/restore_test.py').read_bytes())
self.assertTrue(Path('/etc/systemd/system/app-restore-test.timer').is_file())
self.assertEqual(json.loads(self.state.read_text())['services']['app-restore-test.timer'],'active')
@@ -1234,6 +1235,13 @@ REPORT_SECRET='config-content-must-not-enter-the-mail'
'Deaktiviert (nur lokal)',f'SUCCESS: {run.name}']:
self.assertIn(value,body)
self.assertNotIn('config-content-must-not-enter-the-mail',body)
summary=body.split('Laufzeit und Speicher am Ende',1)[1]
self.assertIn('Verarbeitung:',summary)
self.assertIn('Arbeitsbereich gesamt:',summary)
self.assertIn('Backups (lokale Archive):',summary)
self.assertIn('Restore-Test:',summary)
self.assertIn('Frei auf Datenträger Arbeitsbereich:',summary)
self.assertRegex(summary,r'Backups \(lokale Archive\): (?!nicht verfügbar)')
self.assertFalse(list((self.base/'work/staging').iterdir()))
self.assertEqual((self.base/'mail-args').read_text(),'-oi -t')
saved=next((self.base/'logs').glob('report_*.eml'))
+5
View File
@@ -135,6 +135,11 @@ MAIL_SENDMAIL_BIN="{self.sendmail}"
mail = BytesParser(policy=policy.default).parsebytes((self.base/'mail.eml').read_bytes())
self.assertIn('[app-restore-test] SUCCESS gemini.jr-it-services.de',str(mail['Subject']))
self.assertIn('Bereinigung: OK',mail.get_content())
summary=mail.get_content().split('Laufzeit und Speicher am Ende',1)[1]
self.assertIn('Verarbeitung:',summary)
self.assertIn('Restore-Test:',summary)
self.assertIn('Frei auf Datenträger Arbeitsbereich:',summary)
self.assertRegex(summary,r'Restore-Test: (?!nicht verfügbar)')
self.assertNotIn('expected data',mail.get_content())
self.assertEqual((self.root/'last-success.json').stat().st_mode & 0o777,0o600)
self.execute('--cleanup')