1"""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
9from test.test_support import run_unittest
10
11class 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.assertFalse(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
47def test_suite():
48    return unittest.makeSuite(cleanTestCase)
49
50if __name__ == "__main__":
51    run_unittest(test_suite())
52