Ejemplo n.º 1
0
    def test_add_election(self):
        """ Test the add_election function. """
        nuancierlib.add_election(
            session=self.session,
            election_name='Test',
            election_folder='test',
            election_year='2013',
            election_date_start=TODAY + timedelta(days=3),
            election_date_end=TODAY + timedelta(days=7),
            election_n_choice=2,
            election_badge_link='http://...'
        )
        self.session.commit()

        elections = nuancierlib.get_elections(self.session)
        self.assertEqual(1, len(elections))
        self.assertEqual('Test', elections[0].election_name)
        self.assertEqual('test', elections[0].election_folder)
        self.assertEqual(2013, elections[0].election_year)
        self.assertEqual(
            TODAY + timedelta(days=3), elections[0].election_date_start)
        self.assertEqual(
            TODAY + timedelta(days=7), elections[0].election_date_end)
        self.assertEqual(False, elections[0].election_public)
        self.assertEqual(2, elections[0].election_n_choice)
        self.assertEqual('http://...', elections[0].election_badge_link)
Ejemplo n.º 2
0
    def test_add_election(self):
        """ Test the add_election function. """
        self.assertRaises(
            nuancierlib.NuancierException,
            nuancierlib.add_election,
            session=self.session,
            election_name='Test',
            election_folder='test',
            election_year='2013',
            submission_date_start=TODAY - timedelta(days=1),
            submission_date_end=TODAY + timedelta(days=1),
            election_date_start=TODAY + timedelta(days=3),
            election_date_end=TODAY + timedelta(days=7),
            election_n_choice=2,
            user_n_candidates=5,
            election_badge_link='http://...',
        )

        nuancierlib.add_election(
            session=self.session,
            election_name='Test',
            election_folder='test',
            election_year='2013',
            submission_date_start=TODAY - timedelta(days=1),
            submission_date_end=TODAY + timedelta(days=1),
            election_date_start=TODAY + timedelta(days=3),
            election_date_end=TODAY + timedelta(days=7),
            election_n_choice=2,
            user_n_candidates=5,
            election_badge_link='http://...',
            user='******',
        )
        self.session.commit()

        elections = nuancierlib.get_elections(self.session)
        self.assertEqual(1, len(elections))
        self.assertEqual('Test', elections[0].election_name)
        self.assertEqual('test', elections[0].election_folder)
        self.assertEqual(2013, elections[0].election_year)
        self.assertEqual(TODAY + timedelta(days=3),
                         elections[0].election_date_start)
        self.assertEqual(TODAY + timedelta(days=7),
                         elections[0].election_date_end)
        self.assertEqual(TODAY - timedelta(days=1),
                         elections[0].submission_date_start)
        self.assertEqual(TODAY + timedelta(days=1),
                         elections[0].submission_date_end)
        self.assertEqual(False, elections[0].election_public)
        self.assertEqual(2, elections[0].election_n_choice)
        self.assertEqual('http://...', elections[0].election_badge_link)
Ejemplo n.º 3
0
    def test_add_election(self):
        """ Test the add_election function. """
        self.assertRaises(
            nuancierlib.NuancierException,
            nuancierlib.add_election,
            session=self.session,
            election_name='Test',
            election_folder='test',
            election_year='2013',
            submission_date_start=TODAY - timedelta(days=1),
            submission_date_end=TODAY + timedelta(days=1),
            election_date_start=TODAY + timedelta(days=3),
            election_date_end=TODAY + timedelta(days=7),
            election_n_choice=2,
            user_n_candidates=5,
            election_badge_link='http://...',
        )

        nuancierlib.add_election(
            session=self.session,
            election_name='Test',
            election_folder='test',
            election_year='2013',
            submission_date_start=TODAY - timedelta(days=1),
            submission_date_end=TODAY + timedelta(days=1),
            election_date_start=TODAY + timedelta(days=3),
            election_date_end=TODAY + timedelta(days=7),
            election_n_choice=2,
            user_n_candidates=5,
            election_badge_link='http://...',
            user='******',
        )
        self.session.commit()

        elections = nuancierlib.get_elections(self.session)
        self.assertEqual(1, len(elections))
        self.assertEqual('Test', elections[0].election_name)
        self.assertEqual('test', elections[0].election_folder)
        self.assertEqual(2013, elections[0].election_year)
        self.assertEqual(
            TODAY + timedelta(days=3), elections[0].election_date_start)
        self.assertEqual(
            TODAY + timedelta(days=7), elections[0].election_date_end)
        self.assertEqual(
            TODAY - timedelta(days=1), elections[0].submission_date_start)
        self.assertEqual(
            TODAY + timedelta(days=1), elections[0].submission_date_end)
        self.assertEqual(False, elections[0].election_public)
        self.assertEqual(2, elections[0].election_n_choice)
        self.assertEqual('http://...', elections[0].election_badge_link)
Ejemplo n.º 4
0
def admin_new():
    ''' Create a new election. '''
    form = nuancier.forms.AddElectionForm()
    if form.validate_on_submit():

        try:
            election = nuancierlib.add_election(
                SESSION,
                election_name=form.election_name.data,
                election_folder=form.election_folder.data,
                election_year=form.election_year.data,
                election_date_start=form.election_date_start.data,
                election_date_end=form.election_date_end.data,
                submission_date_start=form.submission_date_start.data,
                election_n_choice=form.election_n_choice.data,
                election_badge_link=form.election_badge_link.data,
                user=flask.g.fas_user.username,
            )

            SESSION.commit()
        except SQLAlchemyError as err:
            SESSION.rollback()
            LOG.debug("User: %s could not add an election",
                      flask.g.fas_user.username)
            LOG.exception(err)
            flask.flash('Could not add this election, is this name or '
                        'folder already used?', 'error')
            return flask.render_template('admin_new.html', form=form)

        flask.flash('Election created')
        if form.generate_cache.data:
            return admin_cache(election.id)

        return flask.redirect(flask.url_for('admin_index'))
    return flask.render_template('admin_new.html', form=form)
Ejemplo n.º 5
0
    def test_add_election(self):
        """ Test the add_election function. """
        nuancierlib.add_election(
            session=self.session,
            election_name='Test',
            election_folder='test',
            election_year='2013',
            election_open=False,
            election_n_choice=2,
            election_badge_link='http://...'
        )
        self.session.commit()

        elections = nuancierlib.get_elections(self.session)
        self.assertEqual(1, len(elections))
        self.assertEqual('Test', elections[0].election_name)
        self.assertEqual('test', elections[0].election_folder)
        self.assertEqual(2013, elections[0].election_year)
        self.assertEqual(False, elections[0].election_open)
        self.assertEqual(False, elections[0].election_public)
        self.assertEqual(2, elections[0].election_n_choice)
        self.assertEqual('http://...', elections[0].election_badge_link)
Ejemplo n.º 6
0
def admin_new():
    ''' Create a new election. '''
    if not nuancier.is_nuancier_admin(flask.g.fas_user):
        flask.flash('You are not an administrator of nuancier', 'error')
        return flask.redirect(flask.url_for('msg'))

    form = nuancier.forms.AddElectionForm()
    if form.validate_on_submit():

        try:
            election = nuancierlib.add_election(
                SESSION,
                election_name=form.election_name.data,
                election_folder=form.election_folder.data,
                election_year=form.election_year.data,
                election_date_start=form.election_date_start.data,
                election_date_end=form.election_date_end.data,
                submission_date_start=form.submission_date_start.data,
                submission_date_end=form.submission_date_end.data,
                election_n_choice=form.election_n_choice.data,
                user_n_candidates=form.user_n_candidates.data,
                election_badge_link=form.election_badge_link.data,
                user=flask.g.fas_user.username,
            )

            SESSION.commit()
        except SQLAlchemyError as err:
            SESSION.rollback()
            LOG.debug("User: %s could not add an election",
                      flask.g.fas_user.username)
            LOG.exception(err)
            flask.flash(
                'Could not add this election, is this name or '
                'folder already used?', 'error')
            return flask.render_template('admin_new.html', form=form)

        flask.flash('Election created')
        if form.generate_cache.data:
            return admin_cache(election.id)

        return flask.redirect(flask.url_for('admin_index'))
    return flask.render_template('admin_new.html', form=form)