示例#1
0
 def test_ongoing_poll_callback_agenda_item_not_ongoing_error(self):
     root = active_poll_fixture(self.config)
     ai = root['meeting']['ai']
     security.unrestricted_wf_transition_to(ai, 'upcoming')
     self.assertRaises(HTTPForbidden,
                       security.unrestricted_wf_transition_to, ai['poll'],
                       'ongoing')
示例#2
0
def _voters_fixture(config):
    from voteit.core.models.user import User
    root = active_poll_fixture(config)
    for userid in ('alice', 'ben', 'celine'):
        root.users[userid] = User()
        root['meeting'].add_groups(userid, [security.ROLE_VOTER])
    return root
示例#3
0
def _voters_fixture(config):
    from voteit.core.models.user import User
    root = active_poll_fixture(config)
    for userid in ('alice', 'ben', 'celine'):
        root.users[userid] = User()
        root['meeting'].add_groups(userid, [security.ROLE_VOTER])
    return root
示例#4
0
 def test_move_object(self):
     root = active_poll_fixture(self.config)
     from voteit.core.models.agenda_item import AgendaItem
     ai = root['meeting']['ai']
     ai2 = root['meeting']['ai2'] = AgendaItem()
     self._fut(ai['prop1'], ai2)
     self.assertIn('prop1', root['meeting']['ai2'])
     self.assertNotIn('prop1', root['meeting']['ai'])
示例#5
0
 def test_move_object(self):
     root = active_poll_fixture(self.config)
     from voteit.core.models.agenda_item import AgendaItem
     ai = root['meeting']['ai']
     ai2 = root['meeting']['ai2'] = AgendaItem()
     self._fut(ai['prop1'], ai2)
     self.assertIn('prop1', root['meeting']['ai2'])
     self.assertNotIn('prop1', root['meeting']['ai'])
示例#6
0
 def test_email_voters_about_ongoing_poll(self):
     root = active_poll_fixture(self.config)
     poll = root['meeting']['ai']['poll']
     request = testing.DummyRequest()
     mailer = get_mailer(request)
     self.assertEqual(len(mailer.outbox), 0)
     security.unrestricted_wf_transition_to(poll, 'ongoing')
     self.assertEqual(len(mailer.outbox), 1)
     self.failUnless('*****@*****.**' in mailer.outbox[0].recipients)
示例#7
0
def _voting_fixture(config):
    #Note: active_poll_fixture may clear registry.settings
    from voteit.core.testing_helpers import active_poll_fixture
    config.include('voteit.core.plugins.majority_poll')
    root = active_poll_fixture(config)
    poll = root['meeting']['ai']['poll']
    poll.set_field_value('poll_plugin', 'majority_poll')
    poll['one'] = vote = Vote(creators = ['one'])
    vote.set_vote_data({'a': 1, 'b': 2}, notify = False)
    return vote
示例#8
0
 def _fixture(self):
     self.config.include('voteit.core.models.fanstatic_resources')
     self.config.include('voteit.core.testing_helpers.register_catalog')
     self.config.include('voteit.combined_simple')
     self.config.testing_securitypolicy(userid='mr_tester')
     root = active_poll_fixture(self.config)
     self.config.include('voteit.core.testing_helpers.register_security_policies')
     poll = root['meeting']['ai']['poll']
     poll.set_field_value('poll_plugin', 'combined_simple')
     return poll
示例#9
0
文件: tests.py 项目: VoteIT/sfs_ga
def _active_poll_fixture(config):
    config.testing_securitypolicy(userid='mrs_tester')
    config.include('voteit.core.plugins.majority_poll')
    config.include('voteit.core.testing_helpers.register_workflows')
    config.include('voteit.core.testing_helpers.register_catalog')
    root = active_poll_fixture(config)
    poll = root['meeting']['ai']['poll']
    poll.set_field_value('poll_plugin', 'majority_poll')
    unrestricted_wf_transition_to(poll, 'ongoing')
    config.include('voteit.core.testing_helpers.register_security_policies')
    config.include('sfs_ga')
    return root['meeting']
示例#10
0
 def test_poll_is_deleted(self):
     request = testing.DummyRequest()
     self.config.begin(request)
     root = active_poll_fixture(self.config)
     self.config.testing_securitypolicy(userid='mr_tester')
     meeting = root['meeting']
     ai = meeting['ai']
     ai['poll'].set_workflow_state(request, 'ongoing')
     # making sure that proposals are in voting state after poll is set to ongoing
     self.assertEqual(ai['prop1'].get_workflow_state(), 'voting')
     self.assertEqual(ai['prop2'].get_workflow_state(), 'voting')
     self.config.include('voteit.core.subscribers.poll')
     del ai['poll']
     self.assertEqual(ai['prop1'].get_workflow_state(), 'published')
     self.assertEqual(ai['prop2'].get_workflow_state(), 'published')
示例#11
0
 def test_poll_is_deleted(self):
     request = testing.DummyRequest()
     self.config.begin(request)
     root = active_poll_fixture(self.config)
     self.config.testing_securitypolicy(userid='mr_tester')
     meeting = root['meeting']
     ai = meeting['ai']
     ai['poll'].set_workflow_state(request, 'ongoing')
     # making sure that proposals are in voting state after poll is set to ongoing
     self.assertEqual(ai['prop1'].get_workflow_state(), 'voting')
     self.assertEqual(ai['prop2'].get_workflow_state(), 'voting')
     self.config.include('voteit.core.subscribers.poll')
     del ai['poll']
     self.assertEqual(ai['prop1'].get_workflow_state(), 'published')
     self.assertEqual(ai['prop2'].get_workflow_state(), 'published')
示例#12
0
 def _fixture(self):
     self.config.include('pyramid_chameleon')
     self.config.testing_securitypolicy(userid='admin')
     self.config.include('arche.testing')
     self.config.include('arche.testing.workflow')
     self.config.include('voteit.core.testing_helpers.register_catalog')
     self.config.include('voteit.core.helpers')
     self.config.include('voteit.combined_simple')
     self.config.testing_securitypolicy(userid='mr_tester')
     root = active_poll_fixture(self.config)
     #Enable workflows
     self.config.include('voteit.core.testing_helpers.register_workflows')
     #self.config.include('voteit.core.testing_helpers.register_security_policies')
     poll = root['meeting']['ai']['poll']
     poll.poll_plugin = 'combined_simple'
     return poll
示例#13
0
 def _fixture(self):
     from voteit.core.models.agenda_item import AgendaItem
     from voteit.core.models.meeting import Meeting
     from voteit.core.models.proposal import Proposal
     from voteit.core.models.poll import Poll
     self.config.registry.settings['default_timezone_name'] = "Europe/Stockholm"
     self.config.registry.settings['default_locale_name'] = 'sv'
     self.config.include('voteit.core.models.date_time_util')
     #self.config.scan('voteit.core.models.proposal')
     self.config.scan('voteit.core.views.components.main')
     self.config.scan('voteit.core.views.components.poll')
     self.config.scan('voteit.core.views.components.moderator_actions')
     self.config.scan('voteit.core.views.components.creators_info')
     self.config.scan('voteit.core.views.components.user_tags')
     self.config.scan('voteit.core.views.components.proposals')
     self.config.scan('voteit.core.views.components.metadata_listing')
     self.config.include('voteit.core.testing_helpers.register_catalog')
     root = active_poll_fixture(self.config)
     return root['meeting']['ai']
示例#14
0
 def test_poll_is_deleted(self):
     ''' Tests that proposals connected to the poll that is deletet get changed to published
         if they are in state voting.
     '''
     request = testing.DummyRequest()
     self.config = testing.setUp(registry = self.config.registry, request = request)
     root = active_poll_fixture(self.config)
     self.config.testing_securitypolicy(userid='mr_tester')
     
     meeting = root['meeting']
     ai = meeting['ai']
     
     ai['poll'].set_workflow_state(request, 'ongoing')
     
     # making sure that proposals are in voting state after poll is set to ongoing 
     self.assertEqual(ai['prop1'].get_workflow_state(), 'voting')
     self.assertEqual(ai['prop2'].get_workflow_state(), 'voting')
     
     del ai['poll']
     
     self.assertEqual(ai['prop1'].get_workflow_state(), 'published')
     self.assertEqual(ai['prop2'].get_workflow_state(), 'published')
示例#15
0
    def test_poll_is_deleted(self):
        ''' Tests that proposals connected to the poll that is deletet get changed to published
            if they are in state voting.
        '''
        request = testing.DummyRequest()
        self.config = testing.setUp(registry=self.config.registry,
                                    request=request)
        root = active_poll_fixture(self.config)
        self.config.testing_securitypolicy(userid='mr_tester')

        meeting = root['meeting']
        ai = meeting['ai']

        ai['poll'].set_workflow_state(request, 'ongoing')

        # making sure that proposals are in voting state after poll is set to ongoing
        self.assertEqual(ai['prop1'].get_workflow_state(), 'voting')
        self.assertEqual(ai['prop2'].get_workflow_state(), 'voting')

        del ai['poll']

        self.assertEqual(ai['prop1'].get_workflow_state(), 'published')
        self.assertEqual(ai['prop2'].get_workflow_state(), 'published')
示例#16
0
 def test_ongoing_poll_callback_agenda_item_not_ongoing_error(self):
     root = active_poll_fixture(self.config)
     ai = root['meeting']['ai']
     security.unrestricted_wf_transition_to(ai, 'upcoming')
     self.assertRaises(HTTPForbidden, security.unrestricted_wf_transition_to, ai['poll'], 'ongoing')