fix: quarantine failed product cleanups in failed_cleanup state
This commit is contained in:
@@ -3,6 +3,7 @@ import hashlib
|
||||
import sqlite3
|
||||
import sys
|
||||
import shutil
|
||||
from datetime import datetime
|
||||
from io import BytesIO
|
||||
from pathlib import Path
|
||||
from types import SimpleNamespace
|
||||
@@ -327,6 +328,34 @@ def test_product_routes_require_orders_auth(product_archive_client):
|
||||
assert [response.status_code for response in requests] == [403] * 6
|
||||
|
||||
|
||||
def test_archive_version_rejects_failed_cleanup_product_and_status_is_visible(
|
||||
product_archive_client,
|
||||
):
|
||||
product = create_product(product_archive_client)
|
||||
deleted = product_archive_client.delete(
|
||||
f"/api/products/{product['product_id']}", headers=orders_auth_header()
|
||||
).json()
|
||||
store = product_archive_client.product_store
|
||||
purge_after = datetime.fromisoformat(deleted["purge_after"])
|
||||
store.claim_product_purge(deleted["product_id"], purge_after)
|
||||
store.fail_product_purge(deleted["product_id"])
|
||||
|
||||
listed = product_archive_client.get(
|
||||
f"/api/products/{deleted['product_id']}", headers=orders_auth_header()
|
||||
).json()
|
||||
assert listed["status"] == "failed_cleanup"
|
||||
|
||||
response = archive_product_version(
|
||||
product_archive_client, deleted["product_id"], {"elements": []}
|
||||
)
|
||||
assert response.status_code == 409
|
||||
|
||||
restored = product_archive_client.post(
|
||||
f"/api/products/{deleted['product_id']}/restore", headers=orders_auth_header()
|
||||
).json()
|
||||
assert restored["status"] == "active"
|
||||
|
||||
|
||||
def test_archive_failure_during_final_move_removes_staging_files(product_archive_client, prepared_wordcloud_job, monkeypatch):
|
||||
product = create_product(product_archive_client)
|
||||
service = service_app._product_archive_service()
|
||||
|
||||
Reference in New Issue
Block a user