Update all mutations to use the new signature classes.
Review Request #10303 — Created Nov. 2, 2018 and updated
This switches all the mutations over to using the new signature classes
instead of the old dictionaries, giving us a standard API for working
with signatures and simplifying a lot of code.
For the most part, the changes are fairly straight-forward moves to the
new API. There are a few larger changes that needed to be made, however.
MockMetahad to be updated to take
some additional arguments that were no longer able to be pulled from
signature dictionaries directly.
SQLMutationnow needs to do a bit more work to handle legacy
mutation functions, as it needs to now serialize the signature to a
dictionary that the function can operate on and then replace the
state of the project signature with the results of that function.
ChangeMetahas to do a little more work to check the properties
being changed and manipualting values, since it can't just operate on
raw dictionaries anymore. This actually helps make it more readable
While there's still work that needs to done in some places still to stop
working directly with signature dictionaries, this covers the majority
of those cases. The rest will be handled as part of other changes.
Unit tests pass on all supported versions of Django.
Fixed docstring issues.
Revision 2 (+533 -371)