Add base classes for mutators.

Review Request #12270 — Created May 6, 2022 and submitted — Latest diff uploaded

Information

Django Evolution
release-2.x

Reviewers

This introduces two new class: BaseMutator and BaseAppStateMutator.

BaseMutator is the base class for all mutators. It stores a couple of
attributes used in the mutator process (can_simulate and finalized),
introduces a function for finalizing, and a default to_sql()
implementation.

BaseAppStateMutator subclasses this, takes the parent AppMutator,
and sets up some forwarding properties that reflect or update the
AppMutator. It contains run_mutation() and run_simulation()
functions as well.

Right now, only ModelMutator subclasses BaseAppStateMutator, but
another will be coming soon.

All unit tests pass.

Tested along with an upcoming new mutator.

Commits

Files