rbintegrations was no longer working with Review Board 5, for a couple
reasons.
First, it used deprecated imports that Review Board 5 no longer
provides (as of this change, though that removal is being reverted
for now). These were attempting to import
reviewboard.integrations.Integration
. We now use the
reviewboard.integrations.base.Integration
import instead.
Second, we had calls in CircleCI to Django's deprecated
urlquote_plus()
(which now just wraps quote_plus()
) that were
failing due to passing in a Unicode string when a byte string was
expected. We now pass in a byte string.
In the process of fixing the urlquote_plus()
issue, I found we were
convert a None
value into the string 'None'
. This seems to have been
a mistake, except the unit tests were matching that. I suspect this was
more a result of copy/paste than deliberate design.
This has been updated to just convert to an empty string and check
against that, which isn't really a whole lot better, but it's at least
more likely to trigger some meaningful error on CircleCI. A task has
been added to track this.