[Python-checkins] r71585 - in python/trunk/Lib/distutils: cmd.py tests/test_cmd.py

tarek.ziade python-checkins at python.org
Mon Apr 13 22:03:45 CEST 2009


Author: tarek.ziade
Date: Mon Apr 13 22:03:44 2009
New Revision: 71585

Log:
improved test coverage for distutils.cmd

Modified:
   python/trunk/Lib/distutils/cmd.py
   python/trunk/Lib/distutils/tests/test_cmd.py

Modified: python/trunk/Lib/distutils/cmd.py
==============================================================================
--- python/trunk/Lib/distutils/cmd.py	(original)
+++ python/trunk/Lib/distutils/cmd.py	Mon Apr 13 22:03:44 2009
@@ -214,7 +214,7 @@
     # and they can be guaranteed that thereafter, self.foo will be
     # a list of strings.
 
-    def _ensure_stringlike (self, option, what, default=None):
+    def _ensure_stringlike(self, option, what, default=None):
         val = getattr(self, option)
         if val is None:
             setattr(self, option, default)
@@ -224,13 +224,13 @@
                   "'%s' must be a %s (got `%s`)" % (option, what, val)
         return val
 
-    def ensure_string (self, option, default=None):
+    def ensure_string(self, option, default=None):
         """Ensure that 'option' is a string; if not defined, set it to
         'default'.
         """
         self._ensure_stringlike(option, "string", default)
 
-    def ensure_string_list (self, option):
+    def ensure_string_list(self, option):
         """Ensure that 'option' is a list of strings.  If 'option' is
         currently a string, we split it either on /,\s*/ or /\s+/, so
         "foo bar baz", "foo,bar,baz", and "foo,   bar baz" all become
@@ -258,20 +258,20 @@
                         (option, val)
 
 
-    def _ensure_tested_string (self, option, tester,
-                               what, error_fmt, default=None):
+    def _ensure_tested_string(self, option, tester,
+                              what, error_fmt, default=None):
         val = self._ensure_stringlike(option, what, default)
         if val is not None and not tester(val):
             raise DistutilsOptionError, \
                   ("error in '%s' option: " + error_fmt) % (option, val)
 
-    def ensure_filename (self, option):
+    def ensure_filename(self, option):
         """Ensure that 'option' is the name of an existing file."""
         self._ensure_tested_string(option, os.path.isfile,
                                    "filename",
                                    "'%s' does not exist or is not a file")
 
-    def ensure_dirname (self, option):
+    def ensure_dirname(self, option):
         self._ensure_tested_string(option, os.path.isdir,
                                    "directory name",
                                    "'%s' does not exist or is not a directory")

Modified: python/trunk/Lib/distutils/tests/test_cmd.py
==============================================================================
--- python/trunk/Lib/distutils/tests/test_cmd.py	(original)
+++ python/trunk/Lib/distutils/tests/test_cmd.py	Mon Apr 13 22:03:44 2009
@@ -1,5 +1,6 @@
 """Tests for distutils.cmd."""
 import unittest
+import os
 
 from distutils.cmd import Command
 from distutils.dist import Distribution
@@ -62,6 +63,45 @@
                   '  option2 = 1']
         self.assertEquals(msgs, wanted)
 
+    def test_ensure_string(self):
+        cmd = self.cmd
+        cmd.option1 = 'ok'
+        cmd.ensure_string('option1')
+
+        cmd.option2 = None
+        cmd.ensure_string('option2', 'xxx')
+        self.assert_(hasattr(cmd, 'option2'))
+
+        cmd.option3 = 1
+        self.assertRaises(DistutilsOptionError, cmd.ensure_string, 'option3')
+
+    def test_ensure_string_list(self):
+        cmd = self.cmd
+        cmd.option1 = 'ok,dok'
+        cmd.ensure_string_list('option1')
+        self.assertEquals(cmd.option1, ['ok', 'dok'])
+
+        cmd.option2 = ['xxx', 'www']
+        cmd.ensure_string_list('option2')
+
+        cmd.option3 = ['ok', 2]
+        self.assertRaises(DistutilsOptionError, cmd.ensure_string_list,
+                          'option3')
+
+    def test_ensure_filename(self):
+        cmd = self.cmd
+        cmd.option1 = __file__
+        cmd.ensure_filename('option1')
+        cmd.option2 = 'xxx'
+        self.assertRaises(DistutilsOptionError, cmd.ensure_filename, 'option2')
+
+    def test_ensure_dirname(self):
+        cmd = self.cmd
+        cmd.option1 = os.path.dirname(__file__)
+        cmd.ensure_dirname('option1')
+        cmd.option2 = 'xxx'
+        self.assertRaises(DistutilsOptionError, cmd.ensure_dirname, 'option2')
+
 def test_suite():
     return unittest.makeSuite(CommandTestCase)
 


More information about the Python-checkins mailing list