I wonder if the form: data.pop('VALUE', None) is safest here.
Where does NAME_ID come from and why wasn't it set previously?
NAME_ID is the MELLON_NAME_ID value that it inserts by default, since the code that this expect-dir is fed into does a MELLON_ + key.
for key in expected: item = data.pop('MELLON_' + key)
Got it. We used to ignore this in the past. Now we filter it out and only remove it if it isn't in expect.
LGTM, +1