diff options
author | Bryn M. Reeves <bmr@redhat.com> | 2014-03-27 21:06:24 +0000 |
---|---|---|
committer | Bryn M. Reeves <bmr@redhat.com> | 2014-03-27 21:06:24 +0000 |
commit | 0bedab23f3eb86878d894419614e1728c395a84e (patch) | |
tree | 28438a083a481a2e382af7a2aab032cae8e48356 | |
parent | c613b172a44c98f40919c763eb4bf088476cbefa (diff) | |
download | sos-0bedab23f3eb86878d894419614e1728c395a84e.tar.gz |
Raise a TypeError if add_copy_specs() is called with a string
Since strings are iterable a plugin attempting to call
add_copy_specs("/something") results in a plugin calling
add_copy_spec("/"). Raise a TypeError if this happens.
Fixes Issue #141.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-rw-r--r-- | sos/plugins/__init__.py | 2 | ||||
-rw-r--r-- | tests/plugin_tests.py | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py index 7b6180c6..7e865cdf 100644 --- a/sos/plugins/__init__.py +++ b/sos/plugins/__init__.py @@ -394,6 +394,8 @@ class Plugin(object): self.name(), strfile), _file) def add_copy_specs(self, copyspecs): + if isinstance(copyspecs, six.string_types): + raise TypeError("Plugin.add_copy_specs called with string argument") for copyspec in copyspecs: self.add_copy_spec(copyspec) diff --git a/tests/plugin_tests.py b/tests/plugin_tests.py index a4905cf9..c44c1629 100644 --- a/tests/plugin_tests.py +++ b/tests/plugin_tests.py @@ -243,6 +243,9 @@ class AddCopySpecTests(unittest.TestCase): self.mp.add_copy_specs(["tests/tail_test.txt"]) self.assert_expect_paths() + def test_add_copy_spec_nostrings(self): + self.assertRaises(TypeError, self.mp.add_copy_specs,"stringsarebadmkay?") + # add_copy_spec_limit() def test_single_file_over_limit(self): |