def test_statement(self):
     """
     Validate statement when learner enrolls in a course.
     """
     statement = LearnerCourseEnrollmentStatement(
         self.user,
         None,
         self.course_overview,
     )
     self.assertDictEqual(json.loads(statement.to_json()), self.expected)
 def test_statement(self):
     """
     Validate statement when learner enrolls in a course.
     """
     statement = LearnerCourseEnrollmentStatement(
         self.user,
         self.course_overview,
         self.user_details,
         self.course_details,
     )
     assert json.loads(statement.to_json()) == self.expected
 def test_statement_courserun(self):
     """
     Validate statement when learner enrolls in a course.
     """
     statement = LearnerCourseEnrollmentStatement(
         self.site,
         self.user,
         self.mock_social_auth,
         self.course_overview,
         'courserun',
     )
     self.assertDictEqual(json.loads(statement.to_json()), self.expected_courserun)
Esempio n. 4
0
def send_course_enrollment_statement(lrs_configuration, course_enrollment):
    """
    Send xAPI statement for course enrollment.

    Arguments:
         lrs_configuration (XAPILRSConfiguration): XAPILRSConfiguration instance where to send statements.
         course_enrollment (CourseEnrollment): Course enrollment object.
    """
    statement = LearnerCourseEnrollmentStatement(course_enrollment.user,
                                                 course_enrollment.course, {},
                                                 {})
    EnterpriseXAPIClient(lrs_configuration).save_statement(statement)
Esempio n. 5
0
def send_course_enrollment_statement(lrs_configuration, course_enrollment):
    """
    Send xAPI statement for course enrollment.

    Arguments:
         lrs_configuration (XAPILRSConfiguration): XAPILRSConfiguration instance where to send statements.
         course_enrollment (CourseEnrollment): Course enrollment object.
    """
    user_details = LearnerInfoSerializer(course_enrollment.user)
    course_details = CourseInfoSerializer(course_enrollment.course)

    statement = LearnerCourseEnrollmentStatement(
        course_enrollment.user,
        course_enrollment.course,
        user_details.data,
        course_details.data,
    )
    EnterpriseXAPIClient(lrs_configuration).save_statement(statement)
Esempio n. 6
0
def send_course_enrollment_statement(lrs_configuration, course_enrollment):
    """
    Send xAPI statement for course enrollment.

    Arguments:
         lrs_configuration (XAPILRSConfiguration): XAPILRSConfiguration instance where to send statements.
         course_enrollment (CourseEnrollment): Course enrollment object.
    """
    user = course_enrollment.user
    LOGGER.info(
        'Sending course enrollment to xAPI for user: {username} for course: {course_key}'
        .format(username=user.username,
                course_key=six.text_type(course_enrollment.course.id)))

    user_social_auth = get_user_social_auth(
        user, lrs_configuration.enterprise_customer)
    statement = LearnerCourseEnrollmentStatement(
        user,
        user_social_auth,
        course_enrollment.course,
    )
    EnterpriseXAPIClient(lrs_configuration).save_statement(statement)
Esempio n. 7
0
def send_course_enrollment_statement(lrs_configuration, course_enrollment):
    """
    Send xAPI statement for course enrollment.

    Arguments:
         lrs_configuration (XAPILRSConfiguration): XAPILRSConfiguration instance where to send statements.
         course_enrollment (CourseEnrollment): Course enrollment object.
    """
    user_details = LearnerInfoSerializer(course_enrollment.user)
    course_details = CourseInfoSerializer(
        course_enrollment.course,
        context={'site': lrs_configuration.enterprise_customer.site})
    LOGGER.info(
        'Sending course enrollment to xAPI for user: {username} for course: {course_key}'
        .format(username=course_enrollment.user.username,
                course_key=six.text_type(course_enrollment.course.id)))
    statement = LearnerCourseEnrollmentStatement(
        course_enrollment.user,
        course_enrollment.course,
        user_details.data,
        course_details.data,
    )
    EnterpriseXAPIClient(lrs_configuration).save_statement(statement)
Esempio n. 8
0
def send_course_enrollment_statement(lrs_configuration, user, course_overview,
                                     object_type, response_fields):
    """
    Send xAPI statement for course enrollment.

    Arguments:
         lrs_configuration (XAPILRSConfiguration): XAPILRSConfiguration instance where to send statements.
         user (User): User object.
         course_overview (CourseOverview): CourseOverview object containing course details.
    """
    event_type = 'enrollment'
    course_id = course_overview.course_key if object_type == 'course' else six.text_type(
        course_overview.id)
    username = user.username if user else 'Unavailable'
    user_social_auth = get_user_social_auth(
        user, lrs_configuration.enterprise_customer)

    statement = LearnerCourseEnrollmentStatement(
        lrs_configuration.enterprise_customer.site,
        user,
        user_social_auth,
        course_overview,
        object_type,
    )

    response_fields = _send_statement(
        statement,
        object_type,
        event_type,
        lrs_configuration,
        lrs_configuration.enterprise_customer.name,
        username,
        course_id,
        response_fields,
    )

    return response_fields