예제 #1
0
    def test_delete_token(self):
        """Assert a user can delete an API token."""
        session = Session()
        token = models.ApiToken(user=self.user, description='Test token')
        session.add(token)
        session.commit()

        with login_user(self.flask_app, self.user):
            with self.flask_app.test_client() as c:
                output = c.get('/settings/', follow_redirects=False)
                self.assertEqual(output.status_code, 200)
                self.assertTrue(b'Test token' in output.data)
                csrf_token = output.data.split(
                    b'name="csrf_token" type="hidden" value="')[1].split(
                        b'">')[0]
                data = {'csrf_token': csrf_token}

                output = c.post('/settings/tokens/delete/{}/'.format(
                    token.token),
                                data=data,
                                follow_redirects=True)

                self.assertEqual(output.status_code, 200)
                self.assertFalse(b'Test token' in output.data)
                self.assertEqual(
                    0,
                    models.ApiToken.query.filter_by(user=self.user).count())
예제 #2
0
 def setUp(self):
     super(ProjectsResourceGetTests, self).setUp()
     self.app = self.flask_app.test_client()
     session = Session()
     self.user = models.User(email='*****@*****.**', username='******')
     self.api_token = models.ApiToken(user=self.user)
     session.add_all([self.user, self.api_token])
     session.commit()
예제 #3
0
    def test_user_relationship(self):
        """Assert users have a reference to their tokens."""
        session = Session()
        user = models.User(email='*****@*****.**', username='******')
        token = models.ApiToken(user=user)
        session.add(token)
        session.commit()

        self.assertEqual(user.api_tokens, [token])
예제 #4
0
    def test_token_default(self):
        """Assert creating an ApiToken generates a random token."""
        session = Session()
        user = models.User(email='*****@*****.**', username='******')
        token = models.ApiToken(user=user)
        session.add(token)
        session.commit()

        self.assertEqual(40, len(token.token))
예제 #5
0
파일: ui.py 프로젝트: mscherer/anitya
def new_token():
    """Create a new API token for the current user."""
    form = anitya.forms.TokenForm()
    if form.validate_on_submit():
        token = models.ApiToken(user=flask.g.user, description=form.description.data)
        Session.add(token)
        Session.commit()
        return flask.redirect(flask.url_for("anitya_ui.settings"))
    else:
        flask.abort(400)
예제 #6
0
 def setUp(self):
     super(PackagesResourceGetTests, self).setUp()
     self.app = self.flask_app.test_client()
     session = Session()
     self.user = models.User(email='*****@*****.**', username='******')
     self.api_token = models.ApiToken(user=self.user)
     fedora = models.Distro('Fedora')
     debian = models.Distro('Debian')
     jcline_linux = models.Distro('jcline linux')
     session.add_all(
         [self.user, self.api_token, fedora, debian, jcline_linux])
     session.commit()
예제 #7
0
    def test_user_relationship(self):
        """Assert users have a reference to their tokens."""
        user = models.User(email="*****@*****.**", username="******")
        user_social_auth = social_models.UserSocialAuth(user_id=user.id, user=user)

        self.session.add(user)
        self.session.add(user_social_auth)

        token = models.ApiToken(user=user)
        self.session.add(token)
        self.session.commit()

        self.assertEqual(user.api_tokens, [token])
예제 #8
0
    def test_token_default(self):
        """Assert creating an ApiToken generates a random token."""
        user = models.User(email="*****@*****.**", username="******")
        user_social_auth = social_models.UserSocialAuth(user_id=user.id, user=user)

        self.session.add(user)
        self.session.add(user_social_auth)

        token = models.ApiToken(user=user)
        self.session.add(token)
        self.session.commit()

        self.assertEqual(40, len(token.token))
예제 #9
0
    def setUp(self):
        super(ProjectsResourceGetTests, self).setUp()
        self.app = self.flask_app.test_client()
        session = Session()
        self.user = models.User(email="*****@*****.**",
                                username="******")
        user_social_auth = social_models.UserSocialAuth(user_id=self.user.id,
                                                        user=self.user)

        session.add(self.user)
        session.add(user_social_auth)
        self.api_token = models.ApiToken(user=self.user)
        session.add(self.api_token)
        session.commit()
예제 #10
0
    def setUp(self):
        super(PackagesResourcePostTests, self).setUp()
        self.app = self.flask_app.test_client()
        session = Session()
        self.user = models.User(email='*****@*****.**', username='******')
        self.api_token = models.ApiToken(user=self.user)
        self.project = models.Project(
            name='requests',
            homepage='https://pypi.io/project/requests',
            backend='PyPI',
        )
        self.fedora = models.Distro('Fedora')
        session.add_all([self.user, self.api_token, self.project, self.fedora])
        session.commit()

        self.auth = {'Authorization': 'Token ' + self.api_token.token}
예제 #11
0
    def setUp(self):
        super(PackagesResourceGetTests, self).setUp()
        self.app = self.flask_app.test_client()
        session = Session()
        self.user = models.User(email="*****@*****.**",
                                username="******")
        user_social_auth = social_models.UserSocialAuth(user_id=self.user.id,
                                                        user=self.user)

        session.add(self.user)
        session.add(user_social_auth)
        self.api_token = models.ApiToken(user=self.user)
        fedora = models.Distro("Fedora")
        debian = models.Distro("Debian")
        jcline_linux = models.Distro("jcline linux")
        session.add_all([self.api_token, fedora, debian, jcline_linux])
        session.commit()
예제 #12
0
    def setUp(self):
        super(ProjectsResourcePostTests, self).setUp()
        self.app = self.flask_app.test_client()
        session = Session()
        self.user = models.User(
            email='*****@*****.**',
            username='******',
        )
        user_social_auth = social_models.UserSocialAuth(user_id=self.user.id,
                                                        user=self.user)

        session.add(self.user)
        session.add(user_social_auth)
        self.api_token = models.ApiToken(user=self.user)
        session.add(self.api_token)
        session.commit()

        self.auth = {'Authorization': 'Token ' + self.api_token.token}
예제 #13
0
    def test_delete_token_invalid_csrf(self):
        """Assert trying to delete a token without a CSRF token fails."""
        session = Session()
        token = models.ApiToken(user=self.user, description='Test token')
        session.add(token)
        session.commit()

        with login_user(self.flask_app, self.user):
            with self.flask_app.test_client() as c:
                data = {'csrf_token': 'not a valid token'}

                output = c.post('/settings/tokens/delete/{}/'.format(
                    token.token),
                                data=data,
                                follow_redirects=True)

                self.assertEqual(output.status_code, 400)
                self.assertEqual(
                    1,
                    models.ApiToken.query.filter_by(user=self.user).count())
예제 #14
0
    def setUp(self):
        super(PackagesResourcePostTests, self).setUp()
        self.app = self.flask_app.test_client()
        session = Session()
        self.user = models.User(email="*****@*****.**",
                                username="******")
        user_social_auth = social_models.UserSocialAuth(user_id=self.user.id,
                                                        user=self.user)

        session.add(self.user)
        session.add(user_social_auth)
        self.api_token = models.ApiToken(user=self.user)
        self.project = models.Project(
            name="requests",
            homepage="https://pypi.io/project/requests",
            backend="PyPI")
        self.fedora = models.Distro("Fedora")
        session.add_all([self.api_token, self.project, self.fedora])
        session.commit()

        self.auth = {"Authorization": "Token " + self.api_token.token}