Review board returns informative error message when a review is posted with a duplicate commit id.
Review Request #5815 — Created May 13, 2014 and submitted
The reproduction steps described in bug 3328 could not be reproduced.
When following the steps, I would receive a HTTP 500 error when
making the second post. This is a result of Django not being used
previously to validate the data. Instead it was being left to the
database, which is checked and handled differently depending on
which database is used and it's configuration. To fix this creation
was changed to instantiation to prevent partial saving, a validation
step was added prior to saving, a new webapi error was added, and
the error code was documented in the manual.
I tested to ensure when making the second rbt post that the error was
caught and an informative error message was displayed, rather than an
HTTP 500 error. I also checked after the failure to ensure that a
partial review object was not created. I also tested to ensure that
posts could still be created if they had a unique commit id.
- Change Summary:
-
Changed creation of ReviewRequest from create to model so that on failure, a partial ReviewRequest does not exist on the server.
- Description:
-
The reproduction steps described in bug 3328 could not be reproduced.
When following the steps, I would receive a HTTP 500 error when making the second post. This is a result of Django not being used previously to validate the data. Instead it was being left to the database, which is checked and handled differently depending on ~ which database is used and it's configuration. To fix this a ~ validation step was added prior to saving, a new webapi error was ~ added, and the error code was documented in the manual. ~ which database is used and it's configuration. To fix this creation ~ was changed to instantiation to prevent partial saving, a validation ~ step was added prior to saving, a new webapi error was added, and + the error code was documented in the manual. - Testing Done:
-
I tested to ensure when making the second rbt post that the error was
caught and an informative error message was displayed, rather than an ~ HTTP 500 error. I also tested to ensure that posts could still be made ~ if they had a unique commit id. ~ HTTP 500 error. I also checked after the failure to ensure that a ~ partial review object was not created. I also tested to ensure that + posts could still be created if they had a unique commit id. - Commit:
-
8b6dcfa681eb8793eed990295148685122229653fdc6782392f9b4c5a06a14212228405767f5b51f
-
This is a review from Review Bot. Tool: PEP8 Style Checker Processed Files: reviewboard/webapi/errors.py reviewboard/webapi/resources/review_request.py reviewboard/reviews/managers.py Ignored Files: docs/manual/webapi/2.0/errors/227-commit-id-already-exists.rst docs/manual/webapi/2.0/errors/index.rst