I spent a while trying to figure out how to do some of the things mentioned.
:pre/:post are available as metadata on the :arglists of the metadata of the var. So you could read these and use it to test generate. This makes sense, and I see how it could happen (especially with spec).
Changing that metadata doesn't change the assertions! So I don't see how you can have them come from a source which isn't the body.