blob: b64f300a04eff262d6f8db4ca5731153c9fd04a3 [file] [log] [blame]
Tarek Ziadébaf51802009-03-31 21:37:16 +00001"""Tests for distutils.command.clean."""
2import sys
3import os
4import unittest
5import getpass
6
7from distutils.command.clean import clean
8from distutils.tests import support
Éric Araujob344dd02011-02-02 21:38:37 +00009from test.support import run_unittest
Tarek Ziadébaf51802009-03-31 21:37:16 +000010
11class cleanTestCase(support.TempdirManager,
Tarek Ziadéea261632009-04-05 18:33:34 +000012 support.LoggingSilencer,
Tarek Ziadébaf51802009-03-31 21:37:16 +000013 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:
Serhiy Storchaka39989152013-11-17 00:17:46 +020039 self.assertFalse(os.path.exists(path),
Tarek Ziadébaf51802009-03-31 21:37:16 +000040 '%s was not removed' % path)
41
Ezio Melotti13925002011-03-16 11:05:33 +020042 # let's run the command again (should spit warnings but succeed)
Tarek Ziadébaf51802009-03-31 21:37:16 +000043 cmd.all = 1
44 cmd.ensure_finalized()
45 cmd.run()
46
47def test_suite():
48 return unittest.makeSuite(cleanTestCase)
49
50if __name__ == "__main__":
Éric Araujob344dd02011-02-02 21:38:37 +000051 run_unittest(test_suite())