Files
ThothII/harness/tests/test_workspace_writer_lock.py
T

17 lines
849 B
Python

from __future__ import annotations
import os, stat
import pytest
from tht.workspace_writer_lock import WorkspaceWriterConflict, verify_workspace_writer_fds
def test_verifier_rejects_missing_capability():
with pytest.raises(WorkspaceWriterConflict): verify_workspace_writer_fds(env={})
def test_verifier_checks_fd_identity(tmp_path):
root=tmp_path / "root"; root.mkdir(mode=0o700); writer=root / "writer.lock"; writer.touch(mode=0o600)
r=os.open(root, os.O_RDONLY); w=os.open(writer, os.O_RDWR)
try:
st=os.fstat(r); env={"THOTH_WORKSPACE_ID":"abc-workspace", "THOTH_WORKSPACE_REVISION":"a"*40, "THOTH_WORKSPACE_DEVICE":str(st.st_dev), "THOTH_WORKSPACE_INODE":str(st.st_ino)}
cap=verify_workspace_writer_fds(writer_fd=w, root_fd=r, env=env)
assert cap.inode == st.st_ino
finally: os.close(w); os.close(r)