added tests for the clean command
diff --git a/Lib/distutils/command/clean.py b/Lib/distutils/command/clean.py
index ba03d1f..90ef35f 100644
--- a/Lib/distutils/command/clean.py
+++ b/Lib/distutils/command/clean.py
@@ -11,7 +11,7 @@
 from distutils.dir_util import remove_tree
 from distutils import log
 
-class clean (Command):
+class clean(Command):
 
     description = "clean up temporary files from 'build' command"
     user_options = [
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 tempfile
 
 from distutils import log
-
+from distutils.core import Distribution
 
 class LoggingSilencer(object):
 
@@ -42,7 +42,7 @@
         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 @@
         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")