def test_user_created_activation_by_admin_nonverified_email(self): """inactive user is created for non-verified email and activation by admin""" form_data = { 'email': '*****@*****.**', 'username': '******', } request = create_request(data=form_data) strategy = load_strategy(request=request) backend = GithubOAuth2(strategy, '/') result = create_user_with_form( strategy=strategy, details={'email': ''}, backend=backend, user=None, pipeline_index=1, ) new_user = UserModel.objects.get(email='*****@*****.**') self.assertEqual(result, {'user': new_user, 'is_new': True}) self.assertNewUserIsCorrect(new_user, form_data, activation='admin', email_verified=False)
def test_form_ignore_inactive_agreement(self): """social register ignores inactive agreement""" form_data = { 'email': '*****@*****.**', 'username': '******', 'terms_of_service': None, } request = create_request(data=form_data) strategy = load_strategy(request=request) backend = GithubOAuth2(strategy, '/') Agreement.objects.create( type=Agreement.TYPE_TOS, text="Lorem ipsum", is_active=False, ) result = create_user_with_form( strategy=strategy, details={'email': form_data['email']}, backend=backend, user=None, pipeline_index=1, ) new_user = UserModel.objects.get(email='*****@*****.**') self.assertEqual(result, {'user': new_user, 'is_new': True}) self.assertEqual(new_user.agreements, []) self.assertEqual(new_user.useragreement_set.count(), 0)
def test_renders_form_if_not_post(self): """pipeline step renders form if not POST""" request = create_request() strategy = load_strategy(request=request) backend = GithubOAuth2(strategy, '/') response = create_user_with_form( strategy=strategy, details={}, backend=backend, user=None, pipeline_index=1, ) self.assertContains(response, "GitHub")
def test_skip_if_user_is_set(self): """pipeline step is skipped if user was passed""" request = create_request() strategy = load_strategy(request=request) backend = GithubOAuth2(strategy, '/') result = create_user_with_form( strategy=strategy, details={}, backend=backend, user=self.user, pipeline_index=1, ) self.assertEqual(result, {})
def test_empty_data_rejected(self): """form rejects empty data""" request = create_request(data={}) strategy = load_strategy(request=request) backend = GithubOAuth2(strategy, '/') response = create_user_with_form( strategy=strategy, details={}, backend=backend, user=None, pipeline_index=1, ) self.assertEqual(response.status_code, 400) self.assertJsonResponseEquals(response, { 'email': ["This field is required."], 'username': ["This field is required."], })
def test_taken_data_rejected(self): """form rejects taken data""" request = create_request(data={ 'email': self.user.email, 'username': self.user.username, }) strategy = load_strategy(request=request) backend = GithubOAuth2(strategy, '/') response = create_user_with_form( strategy=strategy, details={}, backend=backend, user=None, pipeline_index=1, ) self.assertEqual(response.status_code, 400) self.assertJsonResponseEquals(response, { 'email': ["This e-mail address is not available."], 'username': ["This username is not available."], })
def test_form_check_agreement(self): """social register checks agreement""" form_data = { 'email': '*****@*****.**', 'username': '******', } request = create_request(data=form_data) strategy = load_strategy(request=request) backend = GithubOAuth2(strategy, '/') agreement = Agreement.objects.create( type=Agreement.TYPE_TOS, text="Lorem ipsum", is_active=True, ) response = create_user_with_form( strategy=strategy, details={'email': form_data['email']}, backend=backend, user=None, pipeline_index=1, ) self.assertEqual(response.status_code, 400) self.assertJsonResponseEquals(response, { 'terms_of_service': ['This agreement is required.'], }) # invalid agreement id form_data = { 'email': '*****@*****.**', 'username': '******', 'terms_of_service': agreement.id + 1, } request = create_request(data=form_data) strategy = load_strategy(request=request) backend = GithubOAuth2(strategy, '/') response = create_user_with_form( strategy=strategy, details={'email': form_data['email']}, backend=backend, user=None, pipeline_index=1, ) self.assertEqual(response.status_code, 400) self.assertJsonResponseEquals(response, { 'terms_of_service': ['This agreement is required.'], }) # valid agreement id form_data = { 'email': '*****@*****.**', 'username': '******', 'terms_of_service': agreement.id, } request = create_request(data=form_data) strategy = load_strategy(request=request) backend = GithubOAuth2(strategy, '/') result = create_user_with_form( strategy=strategy, details={'email': form_data['email']}, backend=backend, user=None, pipeline_index=1, ) new_user = UserModel.objects.get(email='*****@*****.**') self.assertEqual(result, {'user': new_user, 'is_new': True}) self.assertEqual(new_user.agreements, [agreement.id]) self.assertEqual(new_user.useragreement_set.count(), 1)