'Make a comment with appropriate data overridden by the overrides
parameter and register mock responses for both GET and PUT on its
endpoint. Also mock GET for the related thread with thread_overrides.'

def register_comment(self, overrides=None, thread_overrides=None, course=None):

    if (course is None):
        course = self.course
    cs_thread_data = make_minimal_cs_thread({'id': 'test_thread', 'course_id': unicode(course.id)})
    cs_thread_data.update((thread_overrides or {}))
    self.register_get_thread_response(cs_thread_data)
    cs_comment_data = make_minimal_cs_comment({'id': 'test_comment', 'course_id': cs_thread_data['course_id'], 'thread_id': cs_thread_data['id'], 'username': self.user.username, 'user_id': str(self.user.id), 'created_at': '2015-06-03T00:00:00Z', 'updated_at': '2015-06-03T00:00:00Z', 'body': 'Original    body'})
    cs_comment_data.update((overrides or {}))
    self.register_get_comment_response(cs_comment_data)
    self.register_put_comment_response(cs_comment_data)
