fix,test: add multisig delegation test and test Doers; fix incorrect dip,drt re-escrow #1109
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit contains one big thing and a few small things, with heavy use of Claude Opus 4.5:
Big thing - add tests for the multisig delegation process
if serder.ilk in (Ilks.dip, Ilks.drt)to ensure interaction events are not sent for approval and onlydipanddrtevents are.The test is the majority of this PR.
This test is a new kind of test for the KERIpy codebase, one that operates at the level of Doers rather than using the internals of Parser, event handlers like Kevery, Tevery, and escrow processing. It uses the code similar to how the KLI does.
The multisig delegation test includes:
Medium things
core/eventing.pythis adds a delegation seal check prior to escrowing adipordrtto cover the case of a delegator OOBIing with the delegate AFTER approving the delegate'sdipordrt.dipwas ending up back on the.delegablesescrow following an OOBI resolution of the delegate by the delegator even though the delegator had already approved thedip. Looking up the seal again here is necessary to avoid re-escrowing an already approveddipordrtevent.kli multisig joinfix withif "di" in ked else Nonetoif "di" in oicp.ked else NoneSmall Things
temp=Trueworks in tests.