• 
      

    Fix return value from guess_mimetype on Python 3.

    Review Request #11186 — Created Sept. 19, 2020 and submitted

    Information

    Review Board
    release-4.0.x

    Reviewers

    Mimetype guessing was returning the mimetype as bytes rather than
    str (unicode), due to the default behavior of subprocess.Popen. On
    Python 2 this is fine because bytes and unicode are pretty freely
    intercompatible, but on Python 3 this would then explode later on when
    attempting to serialize a file attachment object with that mimetype set,
    since parse_mimetype didn't understand bytes.

    While I was here I fixed the order of arguments in a log message to make
    more sense.

    I had been experiencing problems when using certain Review Bot tools
    with the Review Board server running on Python 3.8. When the tool
    attempted to create the tool-output attachment, it would get an error
    serializing "bytes" and spit out a warning about being unable to parse
    the mimetype. After this change, everything works as expected.

    Summary ID
    Fix return value from guess_mimetype on Python 3.
    Mimetype guessing was returning the mimetype as `bytes` rather than `str` (`unicode`), due to the default behavior of `subprocess.Popen`. On Python 2 this is fine because bytes and unicode are pretty freely intercompatible, but on Python 3 this would then explode later on when attempting to serialize a file attachment object with that mimetype set, since `parse_mimetype` didn't understand `bytes`. While I was here I fixed the order of arguments in a log message to make more sense. Testing Done: I had been experiencing problems when using certain Review Bot tools with the Review Board server running on Python 3.8. When the tool attempted to create the `tool-output` attachment, it would get an error serializing "bytes" and spit out a warning about being unable to parse the mimetype. After this change, everything works as expected.
    24f39e831a8eef87ac603e06a78e1d8975a75afe
    chipx86
    1. Ship It!
    2. 
        
    david
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-4.0.x (c5cbeac)
    bnie
    1. 
        
    2.