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')
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
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'])
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)
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
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
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']
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')
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
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']
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')
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')