@@ -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