1 """Tests for distutils.command.clean.""" 2 import sys 3 import os 4 import unittest 5 import getpass 6 7 from distutils.command.clean import clean 8 from distutils.tests import support 9 from test.test_support import run_unittest 10 11 class cleanTestCase(support.TempdirManager, 12 support.LoggingSilencer, 13 unittest.TestCase): 14 15 def test_simple_run(self): 16 pkg_dir, dist = self.create_dist() 17 cmd = clean(dist) 18 19 # let's add some elements clean should remove 20 dirs = [(d, os.path.join(pkg_dir, d)) 21 for d in ('build_temp', 'build_lib', 'bdist_base', 22 'build_scripts', 'build_base')] 23 24 for name, path in dirs: 25 os.mkdir(path) 26 setattr(cmd, name, path) 27 if name == 'build_base': 28 continue 29 for f in ('one', 'two', 'three'): 30 self.write_file(os.path.join(path, f)) 31 32 # let's run the command 33 cmd.all = 1 34 cmd.ensure_finalized() 35 cmd.run() 36 37 # make sure the files where removed 38 for name, path in dirs: 39 self.assertTrue(not os.path.exists(path), 40 '%s was not removed' % path) 41 42 # let's run the command again (should spit warnings but succeed) 43 cmd.all = 1 44 cmd.ensure_finalized() 45 cmd.run() 46 47 def test_suite(): 48 return unittest.makeSuite(cleanTestCase) 49 50 if __name__ == "__main__": 51 run_unittest(test_suite()) 52