def METHOD_NAME(self):
    email, password = self._get_login_info()
    if email is None:
        return
    signin_page = self._download_webpage(
        'https://teamtreehouse.com/signin',
        None, 'Downloading signin page')
    data = self._form_hidden_inputs('new_user_session', signin_page)
    data.update({
        'user_session[email]': email,
        'user_session[password]': password,
    })
    error_message = get_element_by_class('error-message', self._download_webpage(
        'https://teamtreehouse.com/person_session',
        None, 'Logging in', data=urlencode_postdata(data)))
    if error_message:
        raise ExtractorError(clean_html(error_message), expected=True)