@@ -63,7 +63,7 @@ def __init__(self, logger, log_mask_re=None): # type: (logging.Logger, typing.O
6363 :type log_mask_re: typing.Optional[str]
6464
6565 .. versionchanged:: 1.2.0 log_mask_re regex rule for masking cmd
66- .. versionchanged:: 1.3.5 make API public paramikoto use as interface
66+ .. versionchanged:: 1.3.5 make API public to use as interface
6767 """
6868 self .__lock = threading .RLock ()
6969 self .__logger = logger
@@ -281,18 +281,18 @@ def check_call(
281281
282282 .. versionchanged:: 1.2.0 default timeout 1 hour
283283 """
284- expected = proc_enums .exit_codes_to_enums (expected )
284+ expected_codes = proc_enums .exit_codes_to_enums (expected )
285285 ret = self .execute (command , verbose , timeout , ** kwargs )
286- if ret .exit_code not in expected :
286+ if ret .exit_code not in expected_codes :
287287 message = (
288288 "{append}Command {result.cmd!r} returned exit code "
289289 "{result.exit_code!s} while expected {expected!s}" .format (
290- append = error_info + "\n " if error_info else "" , result = ret , expected = expected
290+ append = error_info + "\n " if error_info else "" , result = ret , expected = expected_codes
291291 )
292292 )
293293 self .logger .error (msg = message )
294294 if raise_on_err :
295- raise exceptions .CalledProcessError (result = ret , expected = expected )
295+ raise exceptions .CalledProcessError (result = ret , expected = expected_codes )
296296 return ret
297297
298298 def check_stderr (
@@ -337,3 +337,21 @@ def check_stderr(
337337 if raise_on_err :
338338 raise exceptions .CalledProcessError (result = ret , expected = kwargs .get ("expected" ))
339339 return ret
340+
341+ @staticmethod
342+ def _string_bytes_bytearray_as_bytes (src ): # type: (typing.Union[six.text_type, bytes, bytearray]) -> bytes
343+ """Get bytes string from string/bytes/bytearray union.
344+
345+ :return: Byte string
346+ :rtype: bytes
347+ :raises TypeError: unexpected source type.
348+ """
349+ if isinstance (src , bytes ):
350+ return src
351+ if isinstance (src , bytearray ):
352+ return bytes (src )
353+ if isinstance (src , six .text_type ):
354+ return src .encode ("utf-8" )
355+ raise TypeError ( # pragma: no cover
356+ "{!r} has unexpected type: not conform to Union[str, bytes, bytearray]" .format (src )
357+ )
0 commit comments