1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from __future__ import annotations
from pathlib import Path
import pytest
from pygit2 import GitError, Repository, init_repository
from pygittools.tui.repo import open_page_context, try_open_page_context
def test_open_page_context_discovers_repo(tmp_path: Path) -> None:
repo_dir = tmp_path / "project"
repo_dir.mkdir()
init_repository(str(repo_dir), bare=False)
ctx = open_page_context(repo_dir)
assert ctx.repo_path.name == ".git"
assert isinstance(ctx.repo, Repository)
def test_open_page_context_raises_without_repo(tmp_path: Path) -> None:
with pytest.raises(GitError, match="No git repository"):
open_page_context(tmp_path)
def test_try_open_page_context_returns_none_without_repo(tmp_path: Path) -> None:
assert try_open_page_context(tmp_path) is None