Fix Windows compatibility issues

This commit is contained in:
thePR0M3TH3AN
2025-07-05 13:15:13 -04:00
parent 9e1880c3c7
commit 14354ca4e3
4 changed files with 16 additions and 4 deletions

View File

@@ -42,7 +42,8 @@ def test_backup_restore_workflow(monkeypatch):
backup_mgr.create_backup()
backup1 = fp_dir / "backups" / "entries_db_backup_1111.json.enc"
assert backup1.exists()
assert backup1.stat().st_mode & 0o777 == 0o600
if os.name != "nt":
assert backup1.stat().st_mode & 0o777 == 0o600
data2 = {
"schema_version": 3,
@@ -65,7 +66,8 @@ def test_backup_restore_workflow(monkeypatch):
backup_mgr.create_backup()
backup2 = fp_dir / "backups" / "entries_db_backup_2222.json.enc"
assert backup2.exists()
assert backup2.stat().st_mode & 0o777 == 0o600
if os.name != "nt":
assert backup2.stat().st_mode & 0o777 == 0o600
vault.save_index({"schema_version": 3, "entries": {"temp": {}}})
backup_mgr.restore_latest_backup()
@@ -99,4 +101,5 @@ def test_additional_backup_location(monkeypatch):
extra_file = Path(extra) / f"{fp_dir.name}_entries_db_backup_3333.json.enc"
assert extra_file.exists()
assert extra_file.stat().st_mode & 0o777 == 0o600
if os.name != "nt":
assert extra_file.stat().st_mode & 0o777 == 0o600

View File

@@ -48,4 +48,4 @@ def test_exclusive_lock_blocks_until_released(tmp_path: Path) -> None:
# Different operating systems spawn processes at slightly different speeds
# which can shift the measured wait time by a few hundred milliseconds. A
# wider tolerance keeps the test stable across platforms.
assert wait_time.value == pytest.approx(1.0, abs=0.5)
assert wait_time.value == pytest.approx(1.0, abs=0.7)

View File

@@ -1,3 +1,4 @@
import os
import threading
from pathlib import Path
@@ -20,6 +21,10 @@ def _reader(path: Path, results: list[str], exceptions: list[str]) -> None:
exceptions.append(repr(e))
import pytest
@pytest.mark.skipif(os.name == "nt", reason="Windows lacks reliable shared locks")
def test_concurrent_shared_and_exclusive_lock(tmp_path: Path) -> None:
file_path = tmp_path / "data.txt"
file_path.write_text("init")