예제 #1
0
    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)
예제 #2
0
    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)
예제 #3
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")
예제 #4
0
    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, {})
예제 #5
0
    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."],
        })
예제 #6
0
    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."],
        })
예제 #7
0
    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)