feat: B2 uit voor veilige archive-downloads
This commit is contained in:
@@ -91,7 +91,7 @@ class HistoryApiGoldenTest(unittest.TestCase):
|
||||
while time.time() < deadline:
|
||||
response = self._request('GET', f'/api/tasks/{task_id}')
|
||||
body = response.json()
|
||||
if body['status'] in {'completed', 'failed'}:
|
||||
if body['status'] in {'completed', 'failed', 'ready'}:
|
||||
return body
|
||||
time.sleep(0.02)
|
||||
self.fail('task did not reach terminal state in time')
|
||||
@@ -198,9 +198,10 @@ class HistoryApiGoldenTest(unittest.TestCase):
|
||||
(self.root1 / 'docs').mkdir()
|
||||
(self.root1 / 'docs' / 'a.txt').write_text('A', encoding='utf-8')
|
||||
|
||||
response = self._request('GET', '/api/files/download?path=storage1/docs')
|
||||
response = self._request('POST', '/api/files/download/archive-prepare', {'paths': ['storage1/docs']})
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.status_code, 202)
|
||||
self._wait_task(response.json()['task_id'])
|
||||
history = self._request('GET', '/api/history').json()['items']
|
||||
self.assertEqual(history[0]['operation'], 'download')
|
||||
self.assertEqual(history[0]['status'], 'ready')
|
||||
@@ -213,9 +214,10 @@ class HistoryApiGoldenTest(unittest.TestCase):
|
||||
(self.root1 / 'photos').mkdir()
|
||||
(self.root1 / 'photos' / 'img.txt').write_text('P', encoding='utf-8')
|
||||
|
||||
response = self._request('GET', '/api/files/download?path=storage1/readme.txt&path=storage1/photos')
|
||||
response = self._request('POST', '/api/files/download/archive-prepare', {'paths': ['storage1/readme.txt', 'storage1/photos']})
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.status_code, 202)
|
||||
self._wait_task(response.json()['task_id'])
|
||||
history = self._request('GET', '/api/history').json()['items']
|
||||
self.assertEqual(history[0]['operation'], 'download')
|
||||
self.assertEqual(history[0]['status'], 'ready')
|
||||
@@ -229,12 +231,13 @@ class HistoryApiGoldenTest(unittest.TestCase):
|
||||
(self.root1 / 'docs').mkdir()
|
||||
(self.root1 / 'docs' / 'link.txt').symlink_to(target)
|
||||
|
||||
response = self._request('GET', '/api/files/download?path=storage1/docs')
|
||||
response = self._request('POST', '/api/files/download/archive-prepare', {'paths': ['storage1/docs']})
|
||||
|
||||
self.assertEqual(response.status_code, 409)
|
||||
self.assertEqual(response.status_code, 202)
|
||||
self._wait_task(response.json()['task_id'])
|
||||
history = self._request('GET', '/api/history').json()['items']
|
||||
self.assertEqual(history[0]['operation'], 'download')
|
||||
self.assertEqual(history[0]['status'], 'preflight_failed')
|
||||
self.assertEqual(history[0]['status'], 'failed')
|
||||
self.assertEqual(history[0]['source'], 'single_directory_zip')
|
||||
self.assertEqual(history[0]['path'], 'storage1/docs')
|
||||
self.assertEqual(history[0]['destination'], 'docs.zip')
|
||||
|
||||
Reference in New Issue
Block a user