The fake coiterate function doesn't seem to do anything, as the InMemoryUndoStack is mocked.  Can it just be None or some random value instead (that can be used to test that the coiterate function passed to the Supervisor is used to create an InMemoryUndoStack)?