feat(selfhost): add persistent host update service
This commit is contained in:
@@ -567,6 +567,37 @@ class UpdateTests(unittest.TestCase):
|
||||
self.run_update()
|
||||
self.assertFalse(self.called('stop'))
|
||||
|
||||
def test_check_current_release_reports_no_available_update(self):
|
||||
(self.root / '.env').write_bytes(u.set_version(self.original_env, '3.1.0'))
|
||||
result = self.updater.execute('check', '3.1.0')
|
||||
self.assertEqual(result['status'], 'checked')
|
||||
self.assertFalse(result['plan']['updateAvailable'])
|
||||
self.assertFalse(self.called('pull'))
|
||||
with self.assertRaisesRegex(u.UpdateError, 'erneute Installation'):
|
||||
self.run_update()
|
||||
|
||||
def test_reviewed_plan_can_be_applied_but_configuration_changes_require_recheck(self):
|
||||
result = self.updater.execute('check', '3.1.0', request_id='check-request')
|
||||
self.assertEqual(self.updater.status()['requestId'], 'check-request')
|
||||
fingerprint = result['plan']['approvalFingerprint']
|
||||
(self.root / '.env').write_bytes(self.original_env + b'\nCUSTOM_SETTING=changed\n')
|
||||
with self.assertRaises(u.PlanChangedError):
|
||||
self.run_update(expected_fingerprint=fingerprint)
|
||||
self.assertFalse(self.called('pull'))
|
||||
self.assertFalse(self.called('stop'))
|
||||
result = self.updater.execute('check', '3.1.0')
|
||||
self.assertEqual(self.run_update(expected_fingerprint=result['plan']['approvalFingerprint'])['status'], 'succeeded')
|
||||
|
||||
def test_changed_release_digests_cannot_reuse_an_approved_plan(self):
|
||||
result = self.updater.execute('check', '3.1.0')
|
||||
self.http.manifest['images'][0]['digest'] = 'sha256:' + 'c' * 64
|
||||
self.http.files['release-manifest.json'] = data(self.http.manifest)
|
||||
self.http.refresh()
|
||||
with self.assertRaises(u.PlanChangedError):
|
||||
self.run_update(expected_fingerprint=result['plan']['approvalFingerprint'])
|
||||
self.assert_untouched()
|
||||
self.assertFalse(self.called('pull'))
|
||||
|
||||
def test_backup_integrity_manifest_is_complete(self):
|
||||
result = self.run_update()
|
||||
backup = Path(result['backup'])
|
||||
|
||||
Reference in New Issue
Block a user