On 15.10.18 21:53, Eduardo Habkost wrote: > On Mon, Oct 15, 2018 at 04:14:47PM +0200, Max Reitz wrote: >> Since byte strings are no longer the default in Python 3, we have to >> explicitly use them where we need to, which is mostly when working with >> structures. It also means that we need to open a file in binary mode >> when we want to use structures. >> >> On the other hand, we have to accomodate for the fact that some >> functions (still) work with byte strings but we want to use unicode >> strings (in Python 3 at least, and it does not matter in Python 2). >> This includes base64 encoding, but it is most notable when working with >> the subprocess module: Either we set univeral_newlines to True so that >> the default streams are opened in text mode (hence this parameter is >> aliased as "text" as of 3.7), or, if that is not possible, we have to >> decode the output to a normal string. >> >> Signed-off-by: Max Reitz > [...] >> diff --git a/tests/qemu-iotests/149 b/tests/qemu-iotests/149 >> index 9e0cad76f9..1225334cb8 100755 >> --- a/tests/qemu-iotests/149 >> +++ b/tests/qemu-iotests/149 >> @@ -79,7 +79,7 @@ class LUKSConfig(object): >> >> def first_password_base64(self): >> (pw, slot) = self.first_password() >> - return base64.b64encode(pw) >> + return base64.b64encode(pw.encode('ascii')).decode('ascii') > > Would we want to have a test case for non-ascii passwords in the > future? In that case you would probably need to make > self.passwords[] contain byte strings instead of text. I remember someone once providing a non-ASCII initial password to some system for me. I remember the system was running Windows, and I was running Linux, so the system expected ISO-8859-1, while I was sending UTF-8. The moral of the story is that you probably don't want non-ASCII passwords. And if we do want to test them, well, we'll need to decide on an encoding then (or use byte strings, as you suggest). > In either case, using 'ascii' as the encoding everywhere will > ensure the code will not try to be too smart about string > encodings if that happens. I like that. > > Reviewed-by: Eduardo Habkost Thanks for reviewing! Max