def METHOD_NAME(self, resource, request_data, response_data):
    for field, assertions in self.field_assertions.items():
        field_spec = self.field_definitions[field]
        assertion_kwargs = {self.resource_name: resource}
        if not field_spec.get('read_only', False):
            # fix this to test requiredness maybe
            assertion_kwargs['input'] = request_data.get(field)
        if not field_spec.get('write_only', False):
            assertion_kwargs['output'] = response_data[field]
        for assertion in assertions:
            assert assertion(**assertion_kwargs), (
                "Assertion failed for field {field}: \n{source}\n"
                "input: {input}\n"
                "{resource_name}: {resource}\n"
                "output: {output}\n".format(
                    field=field, source=inspect.getsource(assertion),
                    resource_name=self.resource_name,
                    input=assertion_kwargs.get('input'),
                    resource=assertion_kwargs.get(self.resource_name),
                    output=assertion_kwargs.get('output'),
                )
            )