Add the DiffCommitResource
and DraftDiffCommitResource
resources.
The DiffCommitResource
is a resource for retrieving the information
about the DiffCommits
under a particular DiffSet
. The
DraftDiffCommitResource
inherits from the DiffCommitResource
and
modifies it to allow for the creation of DiffCommits
and associated
FileDiffs
. The DraftDiffCommitResource
handles the uploading of
FileDiffs
for DiffCommits
instead of the DiffSetResource
.
The DiffSetResource
POST method now takes an extra optional field,
create_empty
, that determines if the DiffSet that is created is
created without uploading a .diff file
. This is used in the creation
of review requests with commit histories.
The FileDiffResource
and DraftFileDiffResource
classes now filter
their results based on the commit query parameter. If no commit query
parameter is given, only those FileDiffs
unattached to a
DiffCommit
will be return. This filtering is only applied to the
list API, not the item API.
Add a new form, the UploadCommitForm
, for handling the processing of
data for creating new DiffCommit
instances.
Refactor behaviour for uploading FileDiffs
from the DiffSetManager
to a new class, the DiffProcessorMixin
. This mix-in handles the
initial processing of .diff
files, their comparison (for header vs.
source files), generating file lists, and creating actual FileDiffs
from upload (it calls the child class's implementation of
create_from_data
).
The DiffSetManager
now has a create_empty
method for creating
DiffSets
without FileDiffs
for usage with DiffCommits
.
Add the DiffCommitManager
model. It inherits from the
DiffProcessorMixin
.
Add a WebAPI capability to show that the server supports review
requests with commit histories. This allows new versions of rbt
that
support commit histories to create review requests with history by
default if the tool supports it.
Add new unit tests for the web API. The tests include:
- test_filediff
, which tests FileDiff
filtering of a DiffCommit
- test_draft_diff_commit
, which does the base API tests for the
DraftDiffCommitResource
- test_diff_commit
, which does the base API tests for the
DiffCommitResource