Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ dependencies = [
"boto3>=1.40.61",
"harness-browser>=0.7.4",
"playwright>=1.40",
"socksio>=1.0.0",
"psycopg[binary]>=3.2",
"langgraph-checkpoint-postgres>=2.0",
]
Expand Down Expand Up @@ -176,6 +177,7 @@ disable_error_code = ["attr-defined"]
[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"
tmp_path_retention_count = 1
markers = [
"live: tests that hit real LLM endpoints (skipped by default)",
"postgresql: tests that need a live PostgreSQL (set OCTOP_TEST_DATABASE_URL)",
Expand Down
9 changes: 7 additions & 2 deletions tests/unit/browser/test_browser_setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from __future__ import annotations

import contextlib
import json
import os
from pathlib import Path
Expand Down Expand Up @@ -191,8 +192,12 @@ def test_ensure_profile_writable_recreates_when_not_writable(
assert result == profile or "harness-browser-profiles" in str(result)
assert _probe_dir_writable(result)
finally:
if profile.exists():
os.chmod(profile, 0o700)
# Restore permissions on the profile and any stale dirs renamed
# by ensure_profile_writable (they keep 0o000 → pytest can't rm).
for d in [profile, *tmp_path.glob("default.stale-*")]:
if d.exists():
with contextlib.suppress(OSError):
os.chmod(d, 0o700)
else:
assert ensure_profile_writable(profile) == profile

Expand Down
13 changes: 12 additions & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.