17db96d56Sopenharmony_ci"""Tests for distutils.command.clean."""
27db96d56Sopenharmony_ciimport os
37db96d56Sopenharmony_ciimport unittest
47db96d56Sopenharmony_ci
57db96d56Sopenharmony_cifrom distutils.command.clean import clean
67db96d56Sopenharmony_cifrom distutils.tests import support
77db96d56Sopenharmony_cifrom test.support import run_unittest
87db96d56Sopenharmony_ci
97db96d56Sopenharmony_ciclass cleanTestCase(support.TempdirManager,
107db96d56Sopenharmony_ci                    support.LoggingSilencer,
117db96d56Sopenharmony_ci                    unittest.TestCase):
127db96d56Sopenharmony_ci
137db96d56Sopenharmony_ci    def test_simple_run(self):
147db96d56Sopenharmony_ci        pkg_dir, dist = self.create_dist()
157db96d56Sopenharmony_ci        cmd = clean(dist)
167db96d56Sopenharmony_ci
177db96d56Sopenharmony_ci        # let's add some elements clean should remove
187db96d56Sopenharmony_ci        dirs = [(d, os.path.join(pkg_dir, d))
197db96d56Sopenharmony_ci                for d in ('build_temp', 'build_lib', 'bdist_base',
207db96d56Sopenharmony_ci                'build_scripts', 'build_base')]
217db96d56Sopenharmony_ci
227db96d56Sopenharmony_ci        for name, path in dirs:
237db96d56Sopenharmony_ci            os.mkdir(path)
247db96d56Sopenharmony_ci            setattr(cmd, name, path)
257db96d56Sopenharmony_ci            if name == 'build_base':
267db96d56Sopenharmony_ci                continue
277db96d56Sopenharmony_ci            for f in ('one', 'two', 'three'):
287db96d56Sopenharmony_ci                self.write_file(os.path.join(path, f))
297db96d56Sopenharmony_ci
307db96d56Sopenharmony_ci        # let's run the command
317db96d56Sopenharmony_ci        cmd.all = 1
327db96d56Sopenharmony_ci        cmd.ensure_finalized()
337db96d56Sopenharmony_ci        cmd.run()
347db96d56Sopenharmony_ci
357db96d56Sopenharmony_ci        # make sure the files where removed
367db96d56Sopenharmony_ci        for name, path in dirs:
377db96d56Sopenharmony_ci            self.assertFalse(os.path.exists(path),
387db96d56Sopenharmony_ci                         '%s was not removed' % path)
397db96d56Sopenharmony_ci
407db96d56Sopenharmony_ci        # let's run the command again (should spit warnings but succeed)
417db96d56Sopenharmony_ci        cmd.all = 1
427db96d56Sopenharmony_ci        cmd.ensure_finalized()
437db96d56Sopenharmony_ci        cmd.run()
447db96d56Sopenharmony_ci
457db96d56Sopenharmony_cidef test_suite():
467db96d56Sopenharmony_ci    return unittest.TestLoader().loadTestsFromTestCase(cleanTestCase)
477db96d56Sopenharmony_ci
487db96d56Sopenharmony_ciif __name__ == "__main__":
497db96d56Sopenharmony_ci    run_unittest(test_suite())
50