2727
2828import textwrap
2929from itertools import chain
30+ from typing import Iterator
3031
3132import pytest
3233
3334import pygit2
35+ from pygit2 import Diff , Repository
3436from pygit2 .enums import DeltaStatus , DiffFlag , DiffOption , DiffStatsFormat , FileMode
3537
3638COMMIT_SHA1_1 = '5fe808e8953c12735680c257f56600cb0de44b10'
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
434436def 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