Pass encoding to _validate_str_list

This commit is contained in:
twangboy 2019-04-30 15:55:08 -06:00
parent 3e46f5143d
commit 340ee23a10
No known key found for this signature in database
GPG key ID: 93FF3BDEB278C9EB
2 changed files with 5 additions and 5 deletions

View file

@ -308,7 +308,6 @@ import salt.utils.stringutils
import salt.utils.templates
import salt.utils.url
import salt.utils.versions
from salt.utils.locales import sdecode
from salt.exceptions import CommandExecutionError
from salt.serializers import DeserializationError
from salt.state import get_accumulator_dir as _get_accumulator_dir
@ -1176,12 +1175,12 @@ def _get_template_texts(source_list=None,
return ret
def _validate_str_list(arg):
def _validate_str_list(arg, encoding=None):
'''
ensure ``arg`` is a list of strings
'''
if isinstance(arg, six.binary_type):
ret = [salt.utils.stringutils.to_unicode(arg)]
ret = [salt.utils.stringutils.to_unicode(arg, encoding=encoding)]
elif isinstance(arg, six.string_types):
ret = [arg]
elif isinstance(arg, Iterable) and not isinstance(arg, Mapping):
@ -2623,7 +2622,7 @@ def managed(name,
)
try:
validated_contents = _validate_str_list(use_contents)
validated_contents = _validate_str_list(use_contents, encoding=encoding)
if not validated_contents:
return _error(
ret,
@ -3756,7 +3755,7 @@ def recurse(name,
# "env" is not supported; Use "saltenv".
kwargs.pop('env')
name = os.path.expanduser(sdecode(name))
name = os.path.expanduser(salt.utils.data.decode(name))
user = _test_owner(kwargs, user=user)
if salt.utils.platform.is_windows():

View file

@ -612,6 +612,7 @@ class TestFileState(TestCase, LoaderModuleMockMixin):
ret = filestate.managed(
filename,
contents_pillar='fnord',
encoding='utf-8'
)
actual_contents = mock_manage.call_args[0][14]
self.assertEqual(actual_contents, expected_contents)