@@ -1587,31 +1587,68 @@ def test_remove_zip64(self):
15871587                    self .assertIsNone (zh .testzip ())
15881588
15891589    def  test_remove_validate (self ):
1590-         file  =  'datafile.txt' 
1591-         data  =  b'Sed ut perspiciatis unde omnis iste natus error sit voluptatem' 
1592- 
15931590        # closed: error out and do nothing 
1594-         with  zipfile .ZipFile (TESTFN , 'w' ) as  zh :
1595-             zh .writestr (file , data )
1591+         zinfos  =  self ._prepare_zip_from_test_files (TESTFN , self .test_files )
15961592        with  zipfile .ZipFile (TESTFN , 'a' ) as  zh :
15971593            zh .close ()
15981594            with  self .assertRaises (ValueError ):
1599-                 zh .remove (file )
1595+                 zh .remove (self . test_files [ 0 ][ 0 ] )
16001596
16011597        # writing: error out and do nothing 
1602-         with  zipfile .ZipFile (TESTFN , 'w' ) as  zh :
1603-             zh .writestr (file , data )
1598+         zinfos  =  self ._prepare_zip_from_test_files (TESTFN , self .test_files )
16041599        with  zipfile .ZipFile (TESTFN , 'a' ) as  zh :
16051600            with  zh .open ('newfile.txt' , 'w' ) as  fh :
16061601                with  self .assertRaises (ValueError ):
1607-                     zh .remove (file )
1602+                     zh .remove (self . test_files [ 0 ][ 0 ] )
16081603
16091604        # mode 'r': error out and do nothing 
1610-         with  zipfile .ZipFile (TESTFN , 'w' ) as  zh :
1611-             zh .writestr (file , data )
1605+         zinfos  =  self ._prepare_zip_from_test_files (TESTFN , self .test_files )
16121606        with  zipfile .ZipFile (TESTFN , 'r' ) as  zh :
16131607            with  self .assertRaises (ValueError ):
1614-                 zh .remove (file )
1608+                 zh .remove (self .test_files [0 ][0 ])
1609+ 
1610+     def  test_remove_mode_w (self ):
1611+         with  zipfile .ZipFile (TESTFN , 'w' ) as  zh :
1612+             for  file , data  in  self .test_files :
1613+                 zh .writestr (file , data )
1614+             zinfos  =  [ComparableZipInfo (zi ) for  zi  in  zh .infolist ()]
1615+ 
1616+             zh .remove (self .test_files [0 ][0 ])
1617+ 
1618+             # check infolist 
1619+             self .assertEqual (
1620+                 [ComparableZipInfo (zi ) for  zi  in  zh .infolist ()],
1621+                 [zinfos [1 ], zinfos [2 ]],
1622+             )
1623+ 
1624+             # check NameToInfo cache 
1625+             with  self .assertRaises (KeyError ):
1626+                 zh .getinfo (self .test_files [0 ][0 ])
1627+ 
1628+             # make sure the zip file is still valid 
1629+             self .assertIsNone (zh .testzip ())
1630+ 
1631+     def  test_remove_mode_x (self ):
1632+         os .remove (TESTFN )
1633+         with  zipfile .ZipFile (TESTFN , 'w' ) as  zh :
1634+             for  file , data  in  self .test_files :
1635+                 zh .writestr (file , data )
1636+             zinfos  =  [ComparableZipInfo (zi ) for  zi  in  zh .infolist ()]
1637+ 
1638+             zh .remove (self .test_files [0 ][0 ])
1639+ 
1640+             # check infolist 
1641+             self .assertEqual (
1642+                 [ComparableZipInfo (zi ) for  zi  in  zh .infolist ()],
1643+                 [zinfos [1 ], zinfos [2 ]],
1644+             )
1645+ 
1646+             # check NameToInfo cache 
1647+             with  self .assertRaises (KeyError ):
1648+                 zh .getinfo (self .test_files [0 ][0 ])
1649+ 
1650+             # make sure the zip file is still valid 
1651+             self .assertIsNone (zh .testzip ())
16151652
16161653class  StoredRemoveTests (AbstractRemoveTests , unittest .TestCase ):
16171654    compression  =  zipfile .ZIP_STORED 
0 commit comments