diff options
author | Tarek Ziadé <ziade.tarek@gmail.com> | 2009-03-31 20:50:59 (GMT) |
---|---|---|
committer | Tarek Ziadé <ziade.tarek@gmail.com> | 2009-03-31 20:50:59 (GMT) |
commit | 023862890f9f3de1c71b1e98d59d675312e88afb (patch) | |
tree | 7cb79ee5fb9c9c81b44c6dc44286291f37cee2d4 /Lib/distutils/tests | |
parent | c7cd138bc2127079642ee8a3f2fa9d58c889dec0 (diff) | |
download | cpython-023862890f9f3de1c71b1e98d59d675312e88afb.zip cpython-023862890f9f3de1c71b1e98d59d675312e88afb.tar.gz cpython-023862890f9f3de1c71b1e98d59d675312e88afb.tar.bz2 |
added tests for the clean command
Diffstat (limited to 'Lib/distutils/tests')
-rw-r--r-- | Lib/distutils/tests/support.py | 21 | ||||
-rwxr-xr-x | Lib/distutils/tests/test_clean.py | 49 |
2 files changed, 68 insertions, 2 deletions
diff --git a/Lib/distutils/tests/support.py b/Lib/distutils/tests/support.py index fbbf35d..578cf40 100644 --- a/Lib/distutils/tests/support.py +++ b/Lib/distutils/tests/support.py @@ -4,7 +4,7 @@ import shutil import tempfile from distutils import log - +from distutils.core import Distribution class LoggingSilencer(object): @@ -42,7 +42,7 @@ class TempdirManager(object): self.tempdirs.append(d) return d - def write_file(self, path, content): + def write_file(self, path, content='xxx'): """Writes a file in the given path. @@ -56,6 +56,23 @@ class TempdirManager(object): finally: f.close() + def create_dist(self, pkg_name='foo', **kw): + """Will generate a test environment. + + This function creates: + - a Distribution instance using keywords + - a temporary directory with a package structure + + It returns the package directory and the distribution + instance. + """ + tmp_dir = self.mkdtemp() + pkg_dir = os.path.join(tmp_dir, pkg_name) + os.mkdir(pkg_dir) + dist = Distribution(attrs=kw) + + return pkg_dir, dist + class DummyCommand: """Class to store options for retrieval via set_undefined_options().""" diff --git a/Lib/distutils/tests/test_clean.py b/Lib/distutils/tests/test_clean.py new file mode 100755 index 0000000..a94a812 --- /dev/null +++ b/Lib/distutils/tests/test_clean.py @@ -0,0 +1,49 @@ +"""Tests for distutils.command.clean.""" +import sys +import os +import unittest +import getpass + +from distutils.command.clean import clean +from distutils.tests import support + +class cleanTestCase(support.TempdirManager, + unittest.TestCase): + + def test_simple_run(self): + pkg_dir, dist = self.create_dist() + cmd = clean(dist) + + # let's add some elements clean should remove + dirs = [(d, os.path.join(pkg_dir, d)) + for d in ('build_temp', 'build_lib', 'bdist_base', + 'build_scripts', 'build_base')] + + for name, path in dirs: + os.mkdir(path) + setattr(cmd, name, path) + if name == 'build_base': + continue + for f in ('one', 'two', 'three'): + self.write_file(os.path.join(path, f)) + + # let's run the command + cmd.all = 1 + cmd.ensure_finalized() + cmd.run() + + # make sure the files where removed + for name, path in dirs: + self.assert_(not os.path.exists(path), + '%s was not removed' % path) + + # let's run the command again (should spit warnings but suceed) + cmd.all = 1 + cmd.ensure_finalized() + cmd.run() + +def test_suite(): + return unittest.makeSuite(cleanTestCase) + +if __name__ == "__main__": + unittest.main(defaultTest="test_suite") |