From 13b3034d5f180fb34706871ec74ddf841c34992d Mon Sep 17 00:00:00 2001 From: Thibault Ravera Date: Wed, 3 Jun 2020 16:08:09 -0700 Subject: Handle non string object passed to aslist method --- src/pyramid/settings.py | 11 +++++++---- tests/test_settings.py | 12 ++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/pyramid/settings.py b/src/pyramid/settings.py index d1eb4ff14..fbfa1a57d 100644 --- a/src/pyramid/settings.py +++ b/src/pyramid/settings.py @@ -21,14 +21,17 @@ def aslist_cronly(value): def aslist(value, flatten=True): - """ Return a list of strings, separating the input based on newlines + """ Return a list. Separating the input based on newlines and, if flatten=True (the default), also split on spaces within - each line.""" + each line when value is a string.""" values = aslist_cronly(value) if not flatten: return values result = [] for value in values: - subvalues = value.split() - result.extend(subvalues) + if isinstance(value, str): + value = value.split() + result.extend(value) + else: + result.append(value) return result diff --git a/tests/test_settings.py b/tests/test_settings.py index e8be490ee..457835663 100644 --- a/tests/test_settings.py +++ b/tests/test_settings.py @@ -69,6 +69,14 @@ class Test_aslist(unittest.TestCase): result = self._callFUT(['abc', 'def']) self.assertEqual(list(result), ['abc', 'def']) + def test_with_integer(self): + result = self._callFUT([1]) + self.assertEqual(result, [1]) + + def test_with_integer_no_flatten(self): + result = self._callFUT([1], flatten=False) + self.assertEqual(result, [1]) + def test_with_string(self): result = self._callFUT('abc def') self.assertEqual(result, ['abc', 'def']) @@ -84,3 +92,7 @@ class Test_aslist(unittest.TestCase): def test_with_string_crsep_spacesep_no_flatten(self): result = self._callFUT(' abc\n def ghi ', flatten=False) self.assertEqual(result, ['abc', 'def ghi']) + + def test_with_string_crsep_spacesep_and_integer(self): + result = self._callFUT([' abc def ghi ', 1]) + self.assertEqual(result, ['abc', 'def', 'ghi', 1]) -- cgit v1.2.3