ticket #68 attempt 2

This commit is contained in:
Typosaurus 2026-07-19 23:11:30 +00:00
parent 35e79ba8c7
commit 4ffddc8913
2 changed files with 28 additions and 1 deletions

File diff suppressed because one or more lines are too long

View File

@ -7,6 +7,7 @@ from pathlib import Path
import pytest import pytest
from devplacepy.database import init_db, get_table, refresh_snapshot from devplacepy.database import init_db, get_table, refresh_snapshot
from devplacepy import project_files from devplacepy import project_files
from devplacepy.config import PROJECT_FILES_DIR
from devplacepy.project_files import ProjectFileError from devplacepy.project_files import ProjectFileError
from devplacepy.services.jobs import queue from devplacepy.services.jobs import queue
from devplacepy.services.jobs.zip_service import ZipService from devplacepy.services.jobs.zip_service import ZipService
@ -130,6 +131,32 @@ def test_process_whole_project(zip_env):
assert job["bytes_out"] == Path(result["local_path"]).stat().st_size assert job["bytes_out"] == Path(result["local_path"]).stat().st_size
def test_zip_with_missing_blob_succeeds(zip_env):
pid, _ = _make_project(binary=True)
binary_row = get_table("project_files").find_one(
project_uid=pid, is_binary=1
)
assert binary_row is not None
blob_path = PROJECT_FILES_DIR / binary_row["directory"] / binary_row["stored_name"]
assert blob_path.is_file()
blob_path.unlink()
assert not blob_path.exists()
uid = queue.enqueue(
"zip",
{"source": {"type": "project_tree", "project_uid": pid, "path": ""}},
"user",
"u",
"ProjMissing",
)
_process_zip_jobs()
job = queue.get_job(uid)
assert job["status"] == "done"
assert job["bytes_out"] > 0
assert job["result"]["file_count"] == 2
names = sorted(zipfile.ZipFile(job["result"]["local_path"]).namelist())
assert "assets/logo.bin" not in names
def test_process_subtree_folder(zip_env): def test_process_subtree_folder(zip_env):
pid, _ = _make_project() pid, _ = _make_project()
uid = queue.enqueue( uid = queue.enqueue(