14710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm"""Tests for distutils.command.clean.""" 24710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmimport sys 34710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmimport os 44710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmimport unittest 54710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmimport getpass 64710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 74710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmfrom distutils.command.clean import clean 84710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmfrom distutils.tests import support 94710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmfrom test.test_support import run_unittest 104710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 114710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass cleanTestCase(support.TempdirManager, 124710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm support.LoggingSilencer, 134710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm unittest.TestCase): 144710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 154710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm def test_simple_run(self): 164710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm pkg_dir, dist = self.create_dist() 174710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm cmd = clean(dist) 184710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 194710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm # let's add some elements clean should remove 204710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm dirs = [(d, os.path.join(pkg_dir, d)) 214710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm for d in ('build_temp', 'build_lib', 'bdist_base', 224710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 'build_scripts', 'build_base')] 234710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 244710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm for name, path in dirs: 254710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm os.mkdir(path) 264710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm setattr(cmd, name, path) 274710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm if name == 'build_base': 284710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm continue 294710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm for f in ('one', 'two', 'three'): 304710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm self.write_file(os.path.join(path, f)) 314710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 324710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm # let's run the command 334710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm cmd.all = 1 344710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm cmd.ensure_finalized() 354710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm cmd.run() 364710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 374710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm # make sure the files where removed 384710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm for name, path in dirs: 394710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm self.assertTrue(not os.path.exists(path), 404710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm '%s was not removed' % path) 414710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 424710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm # let's run the command again (should spit warnings but succeed) 434710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm cmd.all = 1 444710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm cmd.ensure_finalized() 454710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm cmd.run() 464710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 474710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmdef test_suite(): 484710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm return unittest.makeSuite(cleanTestCase) 494710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 504710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmif __name__ == "__main__": 514710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm run_unittest(test_suite()) 52