@@ -159,6 +159,37 @@ def check_entries(d):
159159 self .assertEqual (commit .committer_tz_offset , 14400 , commit .committer_tz_offset )
160160 self .assertEqual (commit .message , "initial project\n " )
161161
162+ def test_renames (self ):
163+ commit = self .rorepo .commit ("185d847ec7647fd2642a82d9205fb3d07ea71715" )
164+ files = commit .stats .files
165+
166+ # when a file is renamed, the output of git diff is like "dir/{old => new}"
167+ # unless we disable rename with --no-renames, which produces two lines
168+ # one with the old path deletes and another with the new added
169+ self .assertEqual (len (files ), 2 )
170+
171+ def check_entries (path , changes ):
172+ expected = {
173+ ".github/workflows/Future.yml" : {
174+ 'insertions' : 57 ,
175+ 'deletions' : 0 ,
176+ 'lines' : 57
177+ },
178+ ".github/workflows/test_pytest.yml" : {
179+ 'insertions' : 0 ,
180+ 'deletions' : 55 ,
181+ 'lines' : 55
182+ },
183+ }
184+ assert path in expected
185+ assert isinstance (changes , dict )
186+ for key in ("insertions" , "deletions" , "lines" ):
187+ assert changes [key ] == expected [path ][key ]
188+
189+ for path , changes in files .items ():
190+ check_entries (path , changes )
191+ # END for each stated file
192+
162193 def test_unicode_actor (self ):
163194 # assure we can parse unicode actors correctly
164195 name = "Üäöß ÄußÉ"
0 commit comments