@@ -159,6 +159,37 @@ def check_entries(d):
159
159
self .assertEqual (commit .committer_tz_offset , 14400 , commit .committer_tz_offset )
160
160
self .assertEqual (commit .message , "initial project\n " )
161
161
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
+
162
193
def test_unicode_actor (self ):
163
194
# assure we can parse unicode actors correctly
164
195
name = "Üäöß ÄußÉ"
0 commit comments