def test_receiver_called_after_cert_change(self, action_handler): """ Test that hooks_handler is called the correct information after sending COHORT_MEMBERSHIP_CHANGED event. """ metadata = EventsMetadata( event_type="org.openedx.learning.cohort_membership.changed.v1", minorversion=0, ) expected_metadata_subset = { "event_type": metadata.event_type, "minorversion": metadata.minorversion, "source": metadata.source, "sourcehost": metadata.sourcehost, "sourcelib": list(metadata.sourcelib), } action_handler.return_value.__name__ = "receiver" action_handler.return_value.__module__ = "receiver_module" COHORT_MEMBERSHIP_CHANGED.connect( hooks_handler, dispatch_uid="eox-hooks:post_cohort_change") COHORT_MEMBERSHIP_CHANGED.send_event(cohort=self.cohort, ) self.assertDictContainsSubset( expected_metadata_subset, attr.asdict(action_handler.call_args.kwargs.get("metadata")), ) self.assertEqual(self.cohort, action_handler.call_args.kwargs.get("cohort"))
def test_receiver_called_after_cert_revoked(self, action_handler): """ Test that hooks_handler is called the correct information after sending CERTIFICATE_REVOKED event. """ metadata = EventsMetadata( event_type="org.openedx.learning.certificate.revoked.v1", minorversion=0, ) expected_metadata_subset = { "event_type": metadata.event_type, "minorversion": metadata.minorversion, "source": metadata.source, "sourcehost": metadata.sourcehost, "sourcelib": list(metadata.sourcelib), } action_handler.return_value.__name__ = "receiver" action_handler.return_value.__module__ = "receiver_module" CERTIFICATE_REVOKED.connect( hooks_handler, dispatch_uid="eox-hooks:post_certificate_revoke") CERTIFICATE_REVOKED.send_event(certificate=self.certificate, ) self.assertDictContainsSubset( expected_metadata_subset, attr.asdict(action_handler.call_args.kwargs.get("metadata")), ) self.assertEqual(self.certificate, action_handler.call_args.kwargs.get("certificate"))
def test_receiver_called_after_login(self, action_handler): """ Test that hooks_handler is called the correct information after sending SESSION_LOGIN_COMPLETED event. """ metadata = EventsMetadata( event_type="org.openedx.learning.auth.session.login.completed.v1", minorversion=0, ) expected_metadata_subset = { "event_type": metadata.event_type, "minorversion": metadata.minorversion, "source": metadata.source, "sourcehost": metadata.sourcehost, "sourcelib": list(metadata.sourcelib), } action_handler.return_value.__name__ = "receiver" action_handler.return_value.__module__ = "receiver_module" SESSION_LOGIN_COMPLETED.connect( hooks_handler, dispatch_uid="eox-hooks:post_session_login") SESSION_LOGIN_COMPLETED.send_event(user=self.user, ) self.assertDictContainsSubset( expected_metadata_subset, attr.asdict(action_handler.call_args.kwargs.get("metadata")), ) self.assertEqual(self.user, action_handler.call_args.kwargs.get("user"))
def test_receiver_called_after_unenrollment(self, action_handler): """ Test that hooks_handler is called the correct information after sending COURSE_UNENROLLMENT_COMPLETED event. """ metadata = EventsMetadata( event_type="org.openedx.learning.course.unenrollment.completed.v1", minorversion=0, ) expected_metadata_subset = { "event_type": metadata.event_type, "minorversion": metadata.minorversion, "source": metadata.source, "sourcehost": metadata.sourcehost, "sourcelib": list(metadata.sourcelib), } action_handler.return_value.__name__ = "receiver" action_handler.return_value.__module__ = "receiver_module" COURSE_UNENROLLMENT_COMPLETED.connect( hooks_handler, dispatch_uid="eox-hooks:post_unenrollment") COURSE_UNENROLLMENT_COMPLETED.send_event(enrollment=self.enrollment, ) self.assertDictContainsSubset( expected_metadata_subset, attr.asdict(action_handler.call_args.kwargs.get("metadata")), ) self.assertEqual(self.enrollment, action_handler.call_args.kwargs.get("enrollment"))
def generate_signal_metadata(self): """ Generate signal metadata when an event is sent. These fields are generated on the fly and are a subset of the Event Message defined in the OEP-41. Example usage: >>> metadata = \ STUDENT_REGISTRATION_COMPLETED.generate_signal_metadata() attr.asdict(metadata) { 'event_type': '...learning.student.registration.completed.v1', 'minorversion': 0, 'time': '2021-06-09T14:12:45.320819Z', 'source': 'openedx/lms/web', 'sourcehost': 'edx.devstack.lms', 'specversion': '1.0', 'sourcelib: (0,1,0,), } """ return EventsMetadata( event_type=self.event_type, minorversion=self.minor_version, )