26 lines
876 B
Python
26 lines
876 B
Python
"""单写入者门禁使用受控目录,拒绝 Web 绕过已迁移的桌面 Vault。"""
|
|
|
|
import pytest
|
|
from app.config import get_settings
|
|
from app.errors import ApiError
|
|
from app.services.coordination import web_vault_ownership
|
|
|
|
|
|
def test_web_refuses_desktop_owned_vault():
|
|
root = get_settings().vault_path
|
|
(root / '.ainote').mkdir(parents=True)
|
|
(root / '.ainote' / 'host.sqlite3').write_bytes(b'fixture-marker')
|
|
with pytest.raises(ApiError) as error:
|
|
with web_vault_ownership():
|
|
pytest.fail('不应取得桌面写入权')
|
|
assert error.value.code == 'WORKSPACE_OWNER_DESKTOP'
|
|
|
|
|
|
def test_web_lock_is_exclusive_and_released():
|
|
with web_vault_ownership():
|
|
with pytest.raises(ApiError):
|
|
with web_vault_ownership():
|
|
pytest.fail('不应同时持有锁')
|
|
with web_vault_ownership():
|
|
pass
|