@@ -59,7 +59,7 @@ def __init__(self, logger: logging.Logger, log_mask_re: typing.Optional[str] = N
5959 :type log_mask_re: typing.Optional[str]
6060
6161 .. versionchanged:: 1.2.0 log_mask_re regex rule for masking cmd
62- .. versionchanged:: 1.3.5 make API public paramikoto use as interface
62+ .. versionchanged:: 1.3.5 make API public to use as interface
6363 """
6464 self .__lock = threading .RLock ()
6565 self .__logger = logger
@@ -279,18 +279,18 @@ def check_call(
279279
280280 .. versionchanged:: 1.2.0 default timeout 1 hour
281281 """
282- expected = proc_enums .exit_codes_to_enums (expected )
282+ expected_codes = proc_enums .exit_codes_to_enums (expected )
283283 ret = self .execute (command , verbose , timeout , ** kwargs )
284- if ret .exit_code not in expected :
284+ if ret .exit_code not in expected_codes :
285285 message = (
286286 "{append}Command {result.cmd!r} returned exit code "
287287 "{result.exit_code!s} while expected {expected!s}" .format (
288- append = error_info + "\n " if error_info else "" , result = ret , expected = expected
288+ append = error_info + "\n " if error_info else "" , result = ret , expected = expected_codes
289289 )
290290 )
291291 self .logger .error (msg = message )
292292 if raise_on_err :
293- raise exceptions .CalledProcessError (result = ret , expected = expected )
293+ raise exceptions .CalledProcessError (result = ret , expected = expected_codes )
294294 return ret
295295
296296 def check_stderr (
@@ -335,3 +335,21 @@ def check_stderr(
335335 if raise_on_err :
336336 raise exceptions .CalledProcessError (result = ret , expected = kwargs .get ("expected" ))
337337 return ret
338+
339+ @staticmethod
340+ def _string_bytes_bytearray_as_bytes (src : typing .Union [str , bytes , bytearray ]) -> bytes :
341+ """Get bytes string from string/bytes/bytearray union.
342+
343+ :return: Byte string
344+ :rtype: bytes
345+ :raises TypeError: unexpected source type.
346+ """
347+ if isinstance (src , bytes ):
348+ return src
349+ if isinstance (src , bytearray ):
350+ return bytes (src )
351+ if isinstance (src , str ):
352+ return src .encode ("utf-8" )
353+ raise TypeError ( # pragma: no cover
354+ "{!r} has unexpected type: not conform to Union[str, bytes, bytearray]" .format (src )
355+ )
0 commit comments