Verify that all mutate fields are present.
    Return True if so.
    Raise an exception (AssertionError) if not.

def check_mutate_fields( op, op_data ):
    """
    Verify that all mutate fields are present.
    Return True if so.
    Raise an exception (AssertionError) if not.
    """

    mutate_fields = op_get_mutate_fields( op )
    assert mutate_fields is not None, "No mutate fields defined for %s" % op

    missing = []
    for field in mutate_fields:
        if not op_data.has_key(field):
            missing.append(field)

    assert len(missing) == 0, "Missing mutation fields for %s: %s" % (op, ",".join(missing))
    return True