fix(审计): 移除共享库审计与预览噪声
This commit is contained in:
@@ -140,7 +140,6 @@ async def test_copy_revision_saves_to_the_selected_workspace_folder(monkeypatch,
|
||||
content=content,
|
||||
source="COPY",
|
||||
user=user,
|
||||
source_file_id=item.id,
|
||||
)
|
||||
|
||||
|
||||
@@ -159,22 +158,13 @@ async def test_delete_revision_soft_deletes_a_non_current_version(monkeypatch):
|
||||
)
|
||||
db = SimpleNamespace(get=AsyncMock(return_value=revision), commit=AsyncMock())
|
||||
require_manager = AsyncMock()
|
||||
audit = AsyncMock()
|
||||
monkeypatch.setattr(collaboration_service, "require_file_manager", require_manager)
|
||||
monkeypatch.setattr(collaboration_service, "_audit", audit)
|
||||
|
||||
await collaboration_service.delete_revision(db, item, revision_id, user)
|
||||
|
||||
require_manager.assert_awaited_once_with(db, item, user)
|
||||
assert revision.deleted_at is not None
|
||||
assert revision.deleted_by == user.id
|
||||
audit.assert_awaited_once_with(
|
||||
db,
|
||||
item,
|
||||
"COLLABORATION_REVISION_DELETED",
|
||||
user,
|
||||
{"revision_id": str(revision_id), "revision_no": 2},
|
||||
)
|
||||
db.commit.assert_awaited_once()
|
||||
|
||||
|
||||
@@ -260,7 +250,6 @@ async def test_sheet_permission_change_updates_current_file_without_creating_rev
|
||||
user = SimpleNamespace(id=uuid.uuid4())
|
||||
db = SimpleNamespace(get=AsyncMock(return_value=revision), commit=AsyncMock(), refresh=AsyncMock())
|
||||
monkeypatch.setattr(collaboration_service, "require_file_manager", AsyncMock())
|
||||
monkeypatch.setattr(collaboration_service, "_audit", AsyncMock())
|
||||
persist_revision = AsyncMock()
|
||||
monkeypatch.setattr(collaboration_service, "_persist_revision_bytes", persist_revision)
|
||||
|
||||
@@ -540,7 +529,6 @@ async def test_share_link_url_stays_immutable_when_disabled_and_reenabled(monkey
|
||||
refresh=AsyncMock(),
|
||||
)
|
||||
monkeypatch.setattr(collaboration_service, "require_file_manager", AsyncMock())
|
||||
monkeypatch.setattr(collaboration_service, "_audit", AsyncMock())
|
||||
original_token = collaboration_share_service.share_token(link)
|
||||
|
||||
await collaboration_share_service.update_share_link(
|
||||
@@ -803,12 +791,11 @@ async def test_copy_creates_an_independent_r1_from_the_current_revision(monkeypa
|
||||
content=content,
|
||||
source="COPY",
|
||||
user=user,
|
||||
source_file_id=item.id,
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_download_returns_current_revision_and_records_audit(monkeypatch, tmp_path):
|
||||
async def test_download_returns_current_revision_without_writing_audit(monkeypatch, tmp_path):
|
||||
source = tmp_path / "source.docx"
|
||||
source.write_bytes(collaboration_service.blank_file_bytes("word"))
|
||||
revision = SimpleNamespace(
|
||||
@@ -821,22 +808,33 @@ async def test_download_returns_current_revision_and_records_audit(monkeypatch,
|
||||
user = SimpleNamespace(id=uuid.uuid4())
|
||||
db = SimpleNamespace(get=AsyncMock(return_value=revision), commit=AsyncMock())
|
||||
require_exporter = AsyncMock()
|
||||
audit = AsyncMock()
|
||||
monkeypatch.setattr(collaboration_service, "require_file_exporter", require_exporter)
|
||||
monkeypatch.setattr(collaboration_service, "_audit", audit)
|
||||
|
||||
result = await collaboration_service.prepare_download(db, item, user)
|
||||
|
||||
assert result is revision
|
||||
require_exporter.assert_awaited_once_with(db, item, user)
|
||||
audit.assert_awaited_once_with(
|
||||
db.commit.assert_not_awaited()
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_revision_preview_does_not_write_passive_audit(monkeypatch, tmp_path):
|
||||
revision_path = tmp_path / "revision.docx"
|
||||
revision_path.write_bytes(b"office")
|
||||
revision = SimpleNamespace(id=uuid.uuid4(), file_uri=str(revision_path), revision_no=2)
|
||||
item = SimpleNamespace(id=uuid.uuid4())
|
||||
db = SimpleNamespace(commit=AsyncMock())
|
||||
monkeypatch.setattr(collaboration_service, "get_revision_or_404", AsyncMock(return_value=revision))
|
||||
|
||||
result = await collaboration_service.prepare_revision_preview(
|
||||
db,
|
||||
item,
|
||||
"COLLABORATION_FILE_DOWNLOADED",
|
||||
user,
|
||||
{"revision_id": str(revision.id), "revision_no": 3},
|
||||
revision.id,
|
||||
SimpleNamespace(id=uuid.uuid4()),
|
||||
)
|
||||
db.commit.assert_awaited_once()
|
||||
|
||||
assert result is revision
|
||||
db.commit.assert_not_awaited()
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@@ -1041,12 +1039,6 @@ async def test_force_save_updates_session_recovery_revision(monkeypatch):
|
||||
"append_revision",
|
||||
AsyncMock(return_value=(revision, True)),
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
onlyoffice_collaboration_service.collaboration_service,
|
||||
"_audit",
|
||||
AsyncMock(),
|
||||
)
|
||||
|
||||
result = await onlyoffice_collaboration_service.process_callback(
|
||||
db,
|
||||
session.id,
|
||||
|
||||
Reference in New Issue
Block a user