':param extract_thread: a function which accepts a dictionary (complete
json response payload) and returns another dictionary (first
occurrence of a thread model within that payload).  if None is
passed, the identity function is assumed.'

def _assert_json_response_contains_group_info(self, response, extract_thread=None):

    payload = json.loads(response.content)
    thread = (extract_thread(payload) if extract_thread else payload)
    self._assert_thread_contains_group_info(thread)
