Skip to content

Commit 4dcfc88

Browse files
committed
improve types according to test/test_cherrypick.py
1 parent b84bc40 commit 4dcfc88

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

pygit2/_pygit2.pyi

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ from .enums import (
4545
Option,
4646
ReferenceFilter,
4747
ReferenceType,
48+
RepositoryState,
4849
ResetMode,
4950
SortMode,
5051
)
@@ -829,6 +830,7 @@ class Repository:
829830
def descendant_of(self, oid1: _OidArg, oid2: _OidArg) -> bool: ...
830831
def expand_id(self, hex: str) -> Oid: ...
831832
def free(self) -> None: ...
833+
def get(self, key: str, default: Optional[Commit] = None) -> None | Object: ...
832834
def get_attr(
833835
self,
834836
path: str | bytes | Path,
@@ -857,6 +859,8 @@ class Repository:
857859
def merge_base(self, oid1: _OidArg, oid2: _OidArg) -> Oid: ...
858860
def merge_base_many(self, oids: list[_OidArg]) -> Oid: ...
859861
def merge_base_octopus(self, oids: list[_OidArg]) -> Oid: ...
862+
@property
863+
def message(self) -> str: ...
860864
def notes(self) -> Iterator[Note]: ...
861865
def path_is_ignored(self, path: str) -> bool: ...
862866
def raw_listall_branches(
@@ -880,6 +884,8 @@ class Repository:
880884
self, untracked_files: str = 'all', ignored: bool = False
881885
) -> dict[str, int]: ...
882886
def status_file(self, path: str) -> int: ...
887+
def state(self) -> RepositoryState: ...
888+
def state_cleanup(self) -> None: ...
883889
def walk(
884890
self, oid: _OidArg | None, sort_mode: SortMode = SortMode.NONE
885891
) -> Walker: ...

test/test_cherrypick.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,31 +30,34 @@
3030
import pytest
3131

3232
import pygit2
33+
from pygit2 import Repository
3334
from pygit2.enums import RepositoryState
3435

3536

36-
def test_cherrypick_none(mergerepo):
37+
def test_cherrypick_none(mergerepo: Repository) -> None:
3738
with pytest.raises(TypeError):
38-
mergerepo.cherrypick(None)
39+
mergerepo.cherrypick(None) # type: ignore
3940

4041

41-
def test_cherrypick_invalid_hex(mergerepo):
42+
def test_cherrypick_invalid_hex(mergerepo: Repository) -> None:
4243
branch_head_hex = '12345678'
4344
with pytest.raises(KeyError):
4445
mergerepo.cherrypick(branch_head_hex)
4546

4647

47-
def test_cherrypick_already_something_in_index(mergerepo):
48+
def test_cherrypick_already_something_in_index(mergerepo: Repository) -> None:
4849
branch_head_hex = '03490f16b15a09913edb3a067a3dc67fbb8d41f1'
49-
branch_oid = mergerepo.get(branch_head_hex).id
50+
branch_object = mergerepo.get(branch_head_hex)
51+
assert branch_object is not None
52+
branch_oid = branch_object.id
5053
with (Path(mergerepo.workdir) / 'inindex.txt').open('w') as f:
5154
f.write('new content')
5255
mergerepo.index.add('inindex.txt')
5356
with pytest.raises(pygit2.GitError):
5457
mergerepo.cherrypick(branch_oid)
5558

5659

57-
def test_cherrypick_remove_conflicts(mergerepo):
60+
def test_cherrypick_remove_conflicts(mergerepo: Repository) -> None:
5861
assert mergerepo.state() == RepositoryState.NONE
5962
assert not mergerepo.message
6063

0 commit comments

Comments
 (0)