def setUp(self): super(AwardCourseCertificatesTestCase, self).setUp() self.available_date = datetime.now(pytz.UTC) + timedelta(days=1) self.course = CourseOverviewFactory.create( self_paced=True, # Any option to allow the certificate to be viewable for the course certificate_available_date=self.available_date, ) self.student = UserFactory.create(username='******') # Instantiate the Certificate first so that the config doesn't execute issuance self.certificate = GeneratedCertificateFactory.create( user=self.student, mode='verified', course_id=self.course.id, status='downloadable' ) self.create_credentials_config() self.site = SiteFactory() ClientFactory.create(name='credentials') UserFactory.create(username=settings.CREDENTIALS_SERVICE_USERNAME)
def test_request_password_change(self): # Create and activate an account activation_key = create_account(self.USERNAME, self.PASSWORD, self.EMAIL) activate_account(activation_key) request = RequestFactory().post('/password') request.user = Mock() request.site = SiteFactory() with patch('crum.get_current_request', return_value=request): # Request a password change request_password_change(self.EMAIL, self.IS_SECURE) # Verify that one email message has been sent self.assertEqual(len(mail.outbox), 1) # Verify that the body of the message contains something that looks # like an activation link email_body = mail.outbox[0].body result = re.search(r'(?P<url>https?://[^\s]+)', email_body) self.assertIsNot(result, None)
def setUp(self): super().setUp() self.request = RequestFactory().request() self.request.session = {} self.request.site = SiteFactory() self.request.user = self.user self.addCleanup(set_current_request, None) set_current_request(self.request) self.addCleanup(RequestCache.clear_all_namespaces) # Enable all experiment waffle flags. experiment_waffle_flag_patcher = patch.object(ExperimentWaffleFlag, 'is_experiment_on', return_value=True) experiment_waffle_flag_patcher.start() self.addCleanup(experiment_waffle_flag_patcher.stop) # Use our custom fake `stable_bucketing_hash_group` implementation. stable_bucket_patcher = patch( 'lms.djangoapps.experiments.flags.stable_bucketing_hash_group', self._mock_stable_bucket) stable_bucket_patcher.start() self.addCleanup(stable_bucket_patcher.stop)
def test_for_non_staff_user_return_error(self): password = '******' user = EdlyUserFactory(password=password) site = SiteFactory(name=self.site_name) site_config = SiteConfigurationFactory( values={'address': self.site_address}, site=site) EdlySubOrganizationFactory(lms_site=site) request = RequestFactory() request.user = user request.site = site self.client.login(username=user.username, password=password) self.client.cookies.load({ settings.EDLY_USER_INFO_COOKIE_NAME: cookies._get_edly_user_info_cookie_string(request) }) url = reverse('redhouse_panel:redhouse_panel_api.v0:site', kwargs={'pk': site.id}) response = self.client.get(url, SERVER_NAME=site.domain) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual(response.data['detail'], 'You do not have permission to perform this action.')
def test_consent_needed_for_course(self): user = UserFactory(username='******') request = mock.MagicMock(session={}, user=user, site=SiteFactory(domain="example.com")) ec_uuid = 'cf246b88-d5f6-4908-a522-fc307e0b0c59' course_id = 'fake-course' self.mock_enterprise_learner_api() # test not required consent for example non enterprise customer self.mock_consent_not_required(user.username, course_id, ec_uuid) self.assertFalse(consent_needed_for_course(request, user, course_id)) # test required and missing consent for example now he becomes a enterprise customer self.mock_consent_missing(user.username, course_id, ec_uuid) # still result should be False as it has been stored in cache "Not to show consent", so it will confirm that # cache is working fine self.assertFalse(consent_needed_for_course(request, user, course_id)) # Removing cache clear_data_consent_share_cache(user.id, course_id) # Now test again self.assertTrue(consent_needed_for_course(request, user, course_id)) # test after consent permission is granted self.mock_consent_get(user.username, course_id, ec_uuid) self.assertFalse(consent_needed_for_course(request, user, course_id))
def setUp(self): super().setUp() self.user = UserFactory() self.request = RequestFactory().request() self.request.session = {} self.request.site = SiteFactory() self.request.user = self.user self.addCleanup(set_current_request, None) set_current_request(self.request) self.flag = ExperimentWaffleFlag('experiments', 'test', num_buckets=2, experiment_id=0) self.key = CourseKey.from_string('a/b/c') bucket_patch = patch('experiments.flags.stable_bucketing_hash_group', return_value=1) self.addCleanup(bucket_patch.stop) bucket_patch.start() self.addCleanup(RequestCache.clear_all_namespaces)
def test_consent_needed_for_course(self, mock_get_enterprise_learner_data): user = UserFactory(username='******') request = mock.MagicMock( user=user, site=SiteFactory(domain="example.com"), session={}, COOKIES={}, GET={}, ) ec_uuid = 'cf246b88-d5f6-4908-a522-fc307e0b0c59' course_id = 'fake-course' mock_get_enterprise_learner_data.return_value = self.get_mock_enterprise_learner_results() self.mock_enterprise_learner_api() # test that consent is not required for a non-enterprise customer self.mock_consent_not_required(user.username, course_id, ec_uuid) assert not consent_needed_for_course(request, user, course_id) # test required and missing consent for example now he becomes a enterprise customer self.mock_consent_missing(user.username, course_id, ec_uuid) # still result should be False as it has been stored in cache "Not to show consent", so it will confirm that # cache is working fine assert not consent_needed_for_course(request, user, course_id) # Removing cache clear_data_consent_share_cache(user.id, course_id, ec_uuid) # Now test again assert consent_needed_for_course(request, user, course_id) # test after consent permission is granted self.mock_consent_get(user.username, course_id, ec_uuid) assert not consent_needed_for_course(request, user, course_id) # test when the enrollment already exists without a consent record existing. clear_data_consent_share_cache(user.id, course_id, ec_uuid) self.mock_consent_missing(user.username, course_id, ec_uuid) assert not consent_needed_for_course(request, user, course_id, enrollment_exists=True)
def setUp(self): super().setUp() self.site = SiteFactory() self.course_run = CourseRunFactory() course = CourseFactory(course_runs=[self.course_run]) self.data = [ProgramFactory(courses=[course])]
def setUp(self): super(TestProgramProgressMeter, self).setUp() self.user = UserFactory() self.site = SiteFactory()
def setUp(self): super(TestGetPrograms, self).setUp() self.site = SiteFactory()
def setUp(self): super(TestGetPathways, self).setUp() self.site = SiteFactory()
def setUp(self): self.command = SendEmailBaseCommand() self.site = SiteFactory() self.site_config = SiteConfigurationFactory.create(site=self.site)
def setUp(self): super(TestCredentialsSignalsUtils, self).setUp() self.site = SiteFactory() self.course_run = CourseRunFactory() course = CourseFactory(course_runs=[self.course_run]) self.data = [ProgramFactory(courses=[course])]
def setUp(self): # lint-amnesty, pylint: disable=super-method-not-called self.command = SendEmailBaseCommand() self.site = SiteFactory() self.site_config = SiteConfigurationFactory.create(site=self.site)
def setUp(self): super(TestGetPrograms, self).setUp() # lint-amnesty, pylint: disable=super-with-arguments self.site = SiteFactory()
def setUp(self): super().setUp() self.site = SiteFactory()
def setUp(self): super(ApiAccessRequestSignalTests, self).setUp() self.user = UserFactory() self.api_access_request = ApiAccessRequest(user=self.user, site=SiteFactory()) self.send_new_pending_email_function = 'openedx.core.djangoapps.api_admin.models._send_new_pending_email' self.send_decision_email_function = 'openedx.core.djangoapps.api_admin.models._send_decision_email'
def setUp(self): super(TestCredentialsSignalsUtils, self).setUp() # lint-amnesty, pylint: disable=super-with-arguments self.site = SiteFactory() self.course_run = CourseRunFactory() course = CourseFactory(course_runs=[self.course_run]) self.data = [ProgramFactory(courses=[course])]