expect string keys in fixEncodingRecurse

This commit is contained in:
Tomas Kopecek 2019-02-26 14:21:06 +01:00 committed by Mike McLean
parent ee51a835dd
commit 4372ecd89b
2 changed files with 6 additions and 3 deletions

View file

@ -10260,7 +10260,8 @@ class RootExports(object):
raise koji.GenericError('either rpmID or taskID and filepath must be specified')
headers = koji.get_header_fields(rpm_path, headers)
return koji.fixEncodingRecurse(headers, remove_nonprintable=True)
return koji.fixEncodingRecurse(headers, remove_nonprintable=True,
ignore_keys=True)
queryRPMSigs = staticmethod(query_rpm_sigs)

View file

@ -3110,7 +3110,7 @@ def fixEncoding(value, fallback='iso8859-15', remove_nonprintable=False):
return s
def fixEncodingRecurse(value, fallback='iso8859-15', remove_nonprintable=False):
def fixEncodingRecurse(value, fallback='iso8859-15', remove_nonprintable=False, ignore_keys=False):
"""Recursively fix string encoding in an object
Similar behavior to fixEncoding, but recursive
@ -3123,7 +3123,9 @@ def fixEncodingRecurse(value, fallback='iso8859-15', remove_nonprintable=False):
ret = {}
for k in value:
v = fixEncodingRecurse(value[k], fallback=fallback, remove_nonprintable=remove_nonprintable)
k = fixEncodingRecurse(k, fallback=fallback, remove_nonprintable=remove_nonprintable)
# expect, that keys are never really binary
if not ignore_keys:
k = fixEncodingRecurse(k, fallback=fallback, remove_nonprintable=remove_nonprintable)
ret[k] = v
return ret
elif isinstance(value, six.text_type):