def setUp(self): super(TestCourseInfoSerializer, self).setUp() self.x_api_lrs_config = factories.XAPILRSConfigurationFactory() discovery_client_class = mock.patch('integrated_channels.xapi.serializers.CourseCatalogApiServiceClient') self.discovery_client = discovery_client_class.start().return_value self.addCleanup(discovery_client_class.stop)
def setUp(self): super(TestUtils, self).setUp() self.faker = FakerFactory.create() self.user = factories.UserFactory() self.user.profile = mock.Mock(country=mock.Mock(code='PK')) self.mock_social_auth = mock.Mock(provider='tpa-saml', uid='default:edxsso') self.mock_save_statement_success = mock.Mock(name='response', response=mock.Mock( name='response', status=200)) now = datetime.now() # pylint: disable=no-member self.course_overview_mock_data = dict( id=self.faker.text(max_nb_chars=25), # pylint: disable=no-member display_name=self.faker.text(max_nb_chars=25), # pylint: disable=no-member short_description=self.faker.text(), # pylint: disable=no-member marketing_url=self.faker.url(), # pylint: disable=no-member effort=self.faker.text(max_nb_chars=10), # pylint: disable=no-member start=now, end=now + timedelta(weeks=3, days=4), course_key='OrgX+Course101', course_uuid='b1e7c719af3c42288c6f50e2124bb913', ) self.course_overview = mock.Mock(**self.course_overview_mock_data) self.course_enrollment = mock.Mock(user=self.user, course=self.course_overview) self.course_grade = mock.Mock(percent_grade=0.80, passed_timestamp='2020-04-01') self.x_api_lrs_config = factories.XAPILRSConfigurationFactory() self.x_api_client = EnterpriseXAPIClient(self.x_api_lrs_config)
def setUp(self): super(TestUtils, self).setUp() self.faker = FakerFactory.create() self.user = factories.UserFactory() self.user.profile = mock.Mock(country=mock.Mock(code='PK')) now = datetime.now() # pylint: disable=no-member self.course_overview_mock_data = dict( id=self.faker.text(max_nb_chars=25), # pylint: disable=no-member display_name=self.faker.text(max_nb_chars=25), # pylint: disable=no-member short_description=self.faker.text(), # pylint: disable=no-member marketing_url=self.faker.url(), # pylint: disable=no-member effort=self.faker.text(max_nb_chars=10), # pylint: disable=no-member start=now, end=now + timedelta(weeks=3, days=4), ) self.course_overview = mock.Mock(**self.course_overview_mock_data) self.course_enrollment = mock.Mock(user=self.user, course=self.course_overview) self.course_grade = mock.Mock(percent=0.80, passed=True) self.x_api_lrs_config = factories.XAPILRSConfigurationFactory() self.x_api_client = EnterpriseXAPIClient(self.x_api_lrs_config)
def test_command(self, mock_send_statement, mock_catalog_client): """ Make command runs successfully and sends correct data to the LRS. """ xapi_config = factories.XAPILRSConfigurationFactory() if mock_catalog_client is not None: call_command('send_course_enrollments', enterprise_customer_uuid=xapi_config.enterprise_customer.uuid) assert mock_send_statement.called
def test_command(self, mock_send_course_completion_statement): """ Make command runs successfully and sends correct data to the LRS. """ xapi_config = factories.XAPILRSConfigurationFactory() call_command('send_course_completions', enterprise_customer_uuid=xapi_config.enterprise_customer.uuid) assert mock_send_course_completion_statement.called
def test_transmit_course_enrollments_transmit_fail_skip(self, mock_send_statement): # pylint: disable=import-outside-toplevel from integrated_channels.xapi.management.commands.send_course_enrollments import Command lrs_configuration = factories.XAPILRSConfigurationFactory() user = factories.UserFactory() course = self.course_overview Command.transmit_courserun_enrollment_statement(lrs_configuration, user, course) assert mock_send_statement.called
def setUp(self): super(TestUtils, self).setUp() faker = FakerFactory.create() self.user = factories.UserFactory() # pylint: disable=no-member self.course_overview = mock.Mock(display_name=faker.text(max_nb_chars=25), short_description=faker.text()) self.course_enrollment = mock.Mock(user=self.user, course=self.course_overview) self.x_api_lrs_config = factories.XAPILRSConfigurationFactory() self.x_api_client = EnterpriseXAPIClient(self.x_api_lrs_config)
def test_command_grade_factory(self): """ Make sure NotConnectedToOpenEdX is raised when enterprise app is not installed in Open edX environment. """ # Make sure NotConnectedToOpenEdX is raised if called out side of edx-platform xapi_config = factories.XAPILRSConfigurationFactory() with raises( NotConnectedToOpenEdX, match= 'This package must be installed in an OpenEdX environment.'): call_command( 'send_course_completions', enterprise_customer_uuid=xapi_config.enterprise_customer.uuid, )
def test_error_for_invalid_environment(self): """ Make sure NotConnectedToOpenEdX is raised when enterprise app is not installed in Open edX environment. """ xapi_config = factories.XAPILRSConfigurationFactory() with raises( NotConnectedToOpenEdX, match='This package must be installed in an OpenEdX environment.' ): call_command( 'send_course_completions', days=1, enterprise_customer_uuid=xapi_config.enterprise_customer.uuid, )
def test_command_client_error(self): """ Make command handles networking issues gracefully. """ logger = logging.getLogger('integrated_channels.xapi.management.commands.send_course_completions') handler = MockLoggingHandler(level="DEBUG") logger.addHandler(handler) xapi_config = factories.XAPILRSConfigurationFactory() call_command('send_course_completions', enterprise_customer_uuid=xapi_config.enterprise_customer.uuid) expected_message = ( 'Client error while sending course completion to xAPI for enterprise ' 'customer: {enterprise_customer}'.format(enterprise_customer=xapi_config.enterprise_customer.name) ) assert expected_message in handler.messages['error'][0]
def test_get_course_enrollments(self): """ Make sure NotConnectedToOpenEdX is raised when enterprise app is not installed in Open edX environment. """ xapi_config = factories.XAPILRSConfigurationFactory() with raises( NotConnectedToOpenEdX, match= 'This package must be installed in an OpenEdX environment.'): call_command( 'send_course_enrollments', days=1, enterprise_customer_uuid=xapi_config.enterprise_customer.uuid, ) # Verify that get_course_enrollments returns CourseEnrollment records with mock.patch(MODULE_PATH + 'CourseEnrollment') as mock_enrollments: call_command('send_course_enrollments') assert mock_enrollments.objects.filter.called
def test_get_course_completions(self): """ Make sure NotConnectedToOpenEdX is raised when enterprise app is not installed in Open edX environment. """ xapi_config = factories.XAPILRSConfigurationFactory() with raises( NotConnectedToOpenEdX, match='This package must be installed in an OpenEdX environment.' ): call_command( 'send_course_completions', days=1, enterprise_customer_uuid=xapi_config.enterprise_customer.uuid, ) # Verify that get_course_completions returns PersistentCourseGrade records with mock.patch( 'integrated_channels.xapi.management.commands.send_course_completions.PersistentCourseGrade' ) as mock_completions: call_command('send_course_completions') assert mock_completions.objects.filter.called
def setUp(self): super().setUp() self.x_api_lrs_config = factories.XAPILRSConfigurationFactory()
def test_command_send_statement_error_response(self): factories.XAPILRSConfigurationFactory() call_command('send_course_enrollments')
def setUp(self): super(TestXAPILRSConfiguration, self).setUp() self.x_api_lrs_config = factories.XAPILRSConfigurationFactory() self.x_api_client = EnterpriseXAPIClient(self.x_api_lrs_config) self.statement = EnterpriseStatement()