def setUp(self):
        super(SetFlagStateTests, self).setUp()
        session = Session()

        # Add a regular user and an admin user
        self.user = models.User(email='*****@*****.**', username='******')
        self.admin = models.User(email='*****@*****.**', username='******')

        self.project1 = models.Project(
            name='test_project', homepage='https://example.com/test_project', backend='PyPI')
        self.project2 = models.Project(
            name='project2', homepage='https://example.com/project2', backend='PyPI')
        self.flag1 = models.ProjectFlag(
            reason='I wanted to flag it', user='******', project=self.project1)
        self.flag2 = models.ProjectFlag(
            reason='This project is wrong', user='******', project=self.project2)

        session.add_all(
            [self.user, self.admin, self.project1, self.project2, self.flag1, self.flag2])
        session.commit()

        mock_config = mock.patch.dict(
            models.anitya_config, {'ANITYA_WEB_ADMINS': [six.text_type(self.admin.id)]})
        mock_config.start()
        self.addCleanup(mock_config.stop)

        self.client = self.flask_app.test_client()
Exemplo n.º 2
0
def flag_project(session, project, reason, user_email, user_id):
    """ Flag a project in the database.

    """

    flag = models.ProjectFlag(user=user_email, project=project, reason=reason)

    session.add(flag)

    try:
        session.flush()
    except SQLAlchemyError as err:
        _log.exception(err)
        session.rollback()
        raise exceptions.AnityaException("Could not flag this project.")

    log(
        session,
        project=project.__json__(),
        topic="project.flag",
        message=dict(
            agent=user_id,
            project=project.name,
            reason=reason,
            packages=[pkg.__json__() for pkg in project.packages],
        ),
    )
    session.commit()
    return flag
Exemplo n.º 3
0
def create_flagged_project(session):
    """ Create and flag a project. Returns the ProjectFlag. """
    project = models.Project(
        name="geany",
        homepage="https://www.geany.org/",
        version_url="https://www.geany.org/Download/Releases",
        regex="DEFAULT",
    )
    session.add(project)

    flag = models.ProjectFlag(
        project=project, reason="this is a duplicate.", user="******"
    )
    session.add(flag)

    session.commit()
    return flag