'Configure the course fixture to create a course with
`org`, `number`, `run`, and `display_name` (all unicode).
`start_date` and `end_date` are datetime objects indicating the course start and end date.
The default is for the course to have started in the distant past, which is generally what
we want for testing so students can enroll.
`settings` can be any additional course settings needs to be enabled. for example
to enable entrance exam settings would be a dict like this {"entrance_exam_enabled": "true"}
These have the same meaning as in the Studio restful API /course end-point.'

def __init__(self, org, number, run, display_name, start_date=None, end_date=None, settings=None):

    super(CourseFixture, self).__init__()
    self._course_dict = {'org': org, 'number': number, 'run': run, 'display_name': display_name}
    if (start_date is None):
        start_date = datetime.datetime(1970, 1, 1)
    self._course_details = {'start_date': start_date.isoformat()}
    if (end_date is not None):
        self._course_details['end_date'] = end_date.isoformat()
    if (settings is not None):
        self._course_details.update(settings)
    self._updates = []
    self._handouts = []
    self._assets = []
    self._textbooks = []
    self._advanced_settings = {}
    self._course_key = None
