diff options
author | Tarek Ziadé <ziade.tarek@gmail.com> | 2009-04-13 20:03:44 (GMT) |
---|---|---|
committer | Tarek Ziadé <ziade.tarek@gmail.com> | 2009-04-13 20:03:44 (GMT) |
commit | 2fdd0d5ab7ff32422a43c83125a229903e4c2b45 (patch) | |
tree | 70a12af0fdd1f71eaa95ac71a4c7751c697f9db3 /Lib | |
parent | abc26603a47c7ee5732b1d35a76d31f919c3a641 (diff) | |
download | cpython-2fdd0d5ab7ff32422a43c83125a229903e4c2b45.zip cpython-2fdd0d5ab7ff32422a43c83125a229903e4c2b45.tar.gz cpython-2fdd0d5ab7ff32422a43c83125a229903e4c2b45.tar.bz2 |
improved test coverage for distutils.cmd
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/distutils/cmd.py | 14 | ||||
-rw-r--r-- | Lib/distutils/tests/test_cmd.py | 40 |
2 files changed, 47 insertions, 7 deletions
diff --git a/Lib/distutils/cmd.py b/Lib/distutils/cmd.py index dfcbe23..0e56460 100644 --- a/Lib/distutils/cmd.py +++ b/Lib/distutils/cmd.py @@ -214,7 +214,7 @@ class Command: # 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 @@ class Command: "'%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 @@ class Command: (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") diff --git a/Lib/distutils/tests/test_cmd.py b/Lib/distutils/tests/test_cmd.py index a252c35..8f2b36f 100644 --- a/Lib/distutils/tests/test_cmd.py +++ b/Lib/distutils/tests/test_cmd.py @@ -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 @@ class CommandTestCase(unittest.TestCase): ' 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) |