68 lines
1.6 KiB
Python
68 lines
1.6 KiB
Python
import pytest
|
|
import tempfile
|
|
from pathlib import Path
|
|
|
|
|
|
@pytest.fixture
|
|
def temp_home(monkeypatch):
|
|
with tempfile.TemporaryDirectory() as tmpdir:
|
|
home = Path(tmpdir)
|
|
monkeypatch.setenv("HOME", str(home))
|
|
yield home
|
|
|
|
|
|
@pytest.fixture
|
|
def temp_db_path(temp_home):
|
|
db_dir = temp_home / ".local" / "share" / "shell_history_search"
|
|
db_dir.mkdir(parents=True, exist_ok=True)
|
|
return db_dir / "history.db"
|
|
|
|
|
|
@pytest.fixture
|
|
def temp_cache_dir(temp_home):
|
|
cache_dir = temp_home / ".cache" / "shell_history_search" / "models"
|
|
cache_dir.mkdir(parents=True, exist_ok=True)
|
|
return cache_dir
|
|
|
|
|
|
@pytest.fixture
|
|
def sample_bash_history(temp_home):
|
|
history_file = temp_home / ".bash_history"
|
|
history_file.write_text("""
|
|
git add .
|
|
git commit -m "Initial commit"
|
|
git push origin main
|
|
docker build -t myapp .
|
|
docker run -p 8080:8080 myapp
|
|
ls -la
|
|
cat /etc/os-release
|
|
""".strip())
|
|
return history_file
|
|
|
|
|
|
@pytest.fixture
|
|
def sample_zsh_history(temp_home):
|
|
history_file = temp_home / ".zsh_history"
|
|
history_file.write_text("""
|
|
: 1700000000:0;git pull origin main
|
|
: 1700000001:0;docker ps
|
|
: 1700000002:0;npm run build
|
|
: 1700000003:0;pytest tests/ -v
|
|
""".strip())
|
|
return history_file
|
|
|
|
|
|
@pytest.fixture
|
|
def sample_fish_history(temp_home):
|
|
history_file = temp_home / ".local" / "share" / "fish" / "fish_history"
|
|
history_file.parent.mkdir(parents=True, exist_ok=True)
|
|
history_file.write_text("""
|
|
- 1700000000
|
|
cmd docker-compose up -d
|
|
- 1700000001
|
|
cmd cargo build --release
|
|
- 1700000002
|
|
cmd curl localhost:8080/api/health
|
|
""".strip())
|
|
return history_file
|