Skip to content

Commit aec06dd

Browse files
committed
improve types according to test/test_diff.py
1 parent b30c1a7 commit aec06dd

File tree

2 files changed

+30
-27
lines changed

2 files changed

+30
-27
lines changed

pygit2/_pygit2.pyi

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,7 @@ class Diff:
458458
patch: str | None
459459
patchid: Oid
460460
stats: DiffStats
461+
text: str
461462
def find_similar(
462463
self,
463464
flags: DiffFind = DiffFind.FIND_BY_CONFIG,
@@ -835,8 +836,8 @@ class Repository:
835836
) -> Oid: ...
836837
def diff(
837838
self,
838-
a: None | str | bytes | Reference = None,
839-
b: None | str | bytes | Reference = None,
839+
a: None | str | bytes | Oid | Reference = None,
840+
b: None | str | bytes | Oid | Reference = None,
840841
cached: bool = False,
841842
flags: DiffOption = DiffOption.NORMAL,
842843
context_lines: int = 3,

test/test_diff.py

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,12 @@
2727

2828
import textwrap
2929
from itertools import chain
30+
from typing import Iterator
3031

3132
import pytest
3233

3334
import pygit2
35+
from pygit2 import Diff, Repository
3436
from pygit2.enums import DeltaStatus, DiffFlag, DiffOption, DiffStatsFormat, FileMode
3537

3638
COMMIT_SHA1_1 = '5fe808e8953c12735680c257f56600cb0de44b10'
@@ -169,7 +171,7 @@
169171
"""
170172

171173

172-
def test_diff_empty_index(dirtyrepo):
174+
def test_diff_empty_index(dirtyrepo: Repository) -> None:
173175
repo = dirtyrepo
174176
head = repo[repo.lookup_reference('HEAD').resolve().target]
175177

@@ -182,7 +184,7 @@ def test_diff_empty_index(dirtyrepo):
182184
assert DIFF_HEAD_TO_INDEX_EXPECTED == files
183185

184186

185-
def test_workdir_to_tree(dirtyrepo):
187+
def test_workdir_to_tree(dirtyrepo: Repository) -> None:
186188
repo = dirtyrepo
187189
head = repo[repo.lookup_reference('HEAD').resolve().target]
188190

@@ -195,22 +197,22 @@ def test_workdir_to_tree(dirtyrepo):
195197
assert DIFF_HEAD_TO_WORKDIR_EXPECTED == files
196198

197199

198-
def test_index_to_workdir(dirtyrepo):
200+
def test_index_to_workdir(dirtyrepo: Repository) -> None:
199201
diff = dirtyrepo.diff()
200202
files = [patch.delta.new_file.path for patch in diff]
201203
assert DIFF_INDEX_TO_WORK_EXPECTED == files
202204

203205

204-
def test_diff_invalid(barerepo):
206+
def test_diff_invalid(barerepo: Repository) -> None:
205207
commit_a = barerepo[COMMIT_SHA1_1]
206208
commit_b = barerepo[COMMIT_SHA1_2]
207209
with pytest.raises(TypeError):
208-
commit_a.tree.diff_to_tree(commit_b)
210+
commit_a.tree.diff_to_tree(commit_b) # type: ignore
209211
with pytest.raises(TypeError):
210-
commit_a.tree.diff_to_index(commit_b)
212+
commit_a.tree.diff_to_index(commit_b) # type: ignore
211213

212214

213-
def test_diff_empty_index_bare(barerepo):
215+
def test_diff_empty_index_bare(barerepo: Repository) -> None:
214216
repo = barerepo
215217
head = repo[repo.lookup_reference('HEAD').resolve().target]
216218

@@ -227,11 +229,11 @@ def test_diff_empty_index_bare(barerepo):
227229
assert [x.name for x in head.tree] == files
228230

229231

230-
def test_diff_tree(barerepo):
232+
def test_diff_tree(barerepo: Repository) -> None:
231233
commit_a = barerepo[COMMIT_SHA1_1]
232234
commit_b = barerepo[COMMIT_SHA1_2]
233235

234-
def _test(diff):
236+
def _test(diff: Diff) -> None:
235237
assert diff is not None
236238
assert 2 == sum(map(lambda x: len(x.hunks), diff))
237239

@@ -260,11 +262,11 @@ def _test(diff):
260262
_test(barerepo.diff(COMMIT_SHA1_1, COMMIT_SHA1_2))
261263

262264

263-
def test_diff_empty_tree(barerepo):
265+
def test_diff_empty_tree(barerepo: Repository) -> None:
264266
commit_a = barerepo[COMMIT_SHA1_1]
265267
diff = commit_a.tree.diff_to_tree()
266268

267-
def get_context_for_lines(diff):
269+
def get_context_for_lines(diff: Diff) -> Iterator[str]:
268270
hunks = chain.from_iterable(map(lambda x: x.hunks, diff))
269271
lines = chain.from_iterable(map(lambda x: x.lines, hunks))
270272
return map(lambda x: x.origin, lines)
@@ -279,12 +281,12 @@ def get_context_for_lines(diff):
279281
assert all('+' == x for x in get_context_for_lines(diff_swaped))
280282

281283

282-
def test_diff_revparse(barerepo):
284+
def test_diff_revparse(barerepo: Repository) -> None:
283285
diff = barerepo.diff('HEAD', 'HEAD~6')
284286
assert type(diff) is pygit2.Diff
285287

286288

287-
def test_diff_tree_opts(barerepo):
289+
def test_diff_tree_opts(barerepo: Repository) -> None:
288290
commit_c = barerepo[COMMIT_SHA1_3]
289291
commit_d = barerepo[COMMIT_SHA1_4]
290292

@@ -298,7 +300,7 @@ def test_diff_tree_opts(barerepo):
298300
assert 1 == len(diff[0].hunks)
299301

300302

301-
def test_diff_merge(barerepo):
303+
def test_diff_merge(barerepo: Repository) -> None:
302304
commit_a = barerepo[COMMIT_SHA1_1]
303305
commit_b = barerepo[COMMIT_SHA1_2]
304306
commit_c = barerepo[COMMIT_SHA1_3]
@@ -325,7 +327,7 @@ def test_diff_merge(barerepo):
325327
assert patch.delta.new_file.path == 'a'
326328

327329

328-
def test_diff_patch(barerepo):
330+
def test_diff_patch(barerepo: Repository) -> None:
329331
commit_a = barerepo[COMMIT_SHA1_1]
330332
commit_b = barerepo[COMMIT_SHA1_2]
331333

@@ -334,7 +336,7 @@ def test_diff_patch(barerepo):
334336
assert len(diff) == len([patch for patch in diff])
335337

336338

337-
def test_diff_ids(barerepo):
339+
def test_diff_ids(barerepo: Repository) -> None:
338340
commit_a = barerepo[COMMIT_SHA1_1]
339341
commit_b = barerepo[COMMIT_SHA1_2]
340342
patch = commit_a.tree.diff_to_tree(commit_b.tree)[0]
@@ -343,15 +345,15 @@ def test_diff_ids(barerepo):
343345
assert delta.new_file.id == 'af431f20fc541ed6d5afede3e2dc7160f6f01f16'
344346

345347

346-
def test_diff_patchid(barerepo):
348+
def test_diff_patchid(barerepo: Repository) -> None:
347349
commit_a = barerepo[COMMIT_SHA1_1]
348350
commit_b = barerepo[COMMIT_SHA1_2]
349351
diff = commit_a.tree.diff_to_tree(commit_b.tree)
350352
assert diff.patch == PATCH
351353
assert diff.patchid == PATCHID
352354

353355

354-
def test_hunk_content(barerepo):
356+
def test_hunk_content(barerepo: Repository) -> None:
355357
commit_a = barerepo[COMMIT_SHA1_1]
356358
commit_b = barerepo[COMMIT_SHA1_2]
357359
patch = commit_a.tree.diff_to_tree(commit_b.tree)[0]
@@ -362,7 +364,7 @@ def test_hunk_content(barerepo):
362364
assert line.content == line.raw_content.decode()
363365

364366

365-
def test_find_similar(barerepo):
367+
def test_find_similar(barerepo: Repository) -> None:
366368
commit_a = barerepo[COMMIT_SHA1_6]
367369
commit_b = barerepo[COMMIT_SHA1_7]
368370

@@ -376,7 +378,7 @@ def test_find_similar(barerepo):
376378
assert any(x.delta.status_char() == 'R' for x in diff)
377379

378380

379-
def test_diff_stats(barerepo):
381+
def test_diff_stats(barerepo: Repository) -> None:
380382
commit_a = barerepo[COMMIT_SHA1_1]
381383
commit_b = barerepo[COMMIT_SHA1_2]
382384

@@ -391,7 +393,7 @@ def test_diff_stats(barerepo):
391393
assert STATS_EXPECTED == formatted
392394

393395

394-
def test_deltas(barerepo):
396+
def test_deltas(barerepo: Repository) -> None:
395397
commit_a = barerepo[COMMIT_SHA1_1]
396398
commit_b = barerepo[COMMIT_SHA1_2]
397399
diff = commit_a.tree.diff_to_tree(commit_b.tree)
@@ -414,7 +416,7 @@ def test_deltas(barerepo):
414416
# assert delta.flags == patch_delta.flags
415417

416418

417-
def test_diff_parse(barerepo):
419+
def test_diff_parse(barerepo: Repository) -> None:
418420
diff = pygit2.Diff.parse_diff(PATCH)
419421

420422
stats = diff.stats
@@ -426,9 +428,9 @@ def test_diff_parse(barerepo):
426428
assert 2 == len(deltas)
427429

428430

429-
def test_parse_diff_null():
431+
def test_parse_diff_null() -> None:
430432
with pytest.raises(TypeError):
431-
pygit2.Diff.parse_diff(None)
433+
pygit2.Diff.parse_diff(None) # type: ignore
432434

433435

434436
def test_parse_diff_bad():
@@ -445,7 +447,7 @@ def test_parse_diff_bad():
445447
pygit2.Diff.parse_diff(diff)
446448

447449

448-
def test_diff_blobs(emptyrepo):
450+
def test_diff_blobs(emptyrepo: Repository) -> None:
449451
repo = emptyrepo
450452
blob1 = repo.create_blob(TEXT_BLOB1.encode())
451453
blob2 = repo.create_blob(TEXT_BLOB2.encode())

0 commit comments

Comments
 (0)