def test_change_states_proposals(self): from voteit.core.models.agenda_item import AgendaItem from voteit.core.models.proposal import Proposal from voteit.core.models.poll import Poll register_workflows(self.config) request = testing.DummyRequest() self.config.begin(request) self.root['ai'] = ai = AgendaItem() ai['prop1'] = Proposal() ai['prop2'] = Proposal() ai['poll'] = Poll() ai['poll'].proposal_uids = (ai['prop1'].uid, ai['prop2'].uid) ai['poll'].set_workflow_state(request, 'upcoming') self.assertEqual(ai['prop1'].get_workflow_state(), 'voting') self.assertEqual(ai['prop2'].get_workflow_state(), 'voting')
def test_proposal_in_wrong_state(self): register_workflows(self.config) request = testing.DummyRequest() self.config.begin(request) from voteit.core.models.agenda_item import AgendaItem from voteit.core.models.proposal import Proposal from voteit.core.models.poll import Poll self.root['ai'] = ai = AgendaItem() ai['prop'] = Proposal() ai['poll'] = Poll() ai['poll'].proposal_uids = (ai['prop'].uid, ) self.config.include('voteit.core.subscribers.poll') #Set state to something that doesn't have a transition to 'voting' ai['prop'].set_workflow_state(request, 'denied') self.assertRaises(HTTPForbidden, ai['poll'].set_workflow_state, request, 'upcoming')
def test_proposal_in_wrong_state(self): register_workflows(self.config) request = testing.DummyRequest() self.config = testing.setUp(registry=self.config.registry, request=request) from voteit.core.models.agenda_item import AgendaItem from voteit.core.models.proposal import Proposal from voteit.core.models.poll import Poll ai = AgendaItem() ai['prop'] = Proposal() ai['poll'] = Poll() ai['poll'].proposal_uids = (ai['prop'].uid, ) #Set state to something that doesn't have a transition to 'voting' ai['prop'].set_workflow_state(request, 'approved') self.assertRaises(HTTPForbidden, ai['poll'].set_workflow_state, request, 'upcoming')
def setUp(self): self.request = testing.DummyRequest() self.config = testing.setUp(request=self.request) self.config.testing_securitypolicy(userid='admin') self.config.include('arche.testing') self.config.include('arche.models.catalog') #Enable workflows self.config.include('voteit.core.testing_helpers.register_workflows') #Register poll plugin self.config.include('voteit.core.plugins.majority_poll') #Add root from voteit.core.models.site import SiteRoot self.root = root = SiteRoot() #Add users from voteit.core.models.users import Users root['users'] = users = Users() from voteit.core.models.user import User users['admin'] = User() #Add meeting from voteit.core.models.meeting import Meeting root['m'] = self.meeting = m = Meeting() #Add agenda item - needed for lookups from voteit.core.models.agenda_item import AgendaItem m['ai'] = ai = AgendaItem() #Add a poll from voteit.core.models.poll import Poll ai['poll'] = Poll() #Wrap in correct context self.poll = ai['poll'] #Select plugin to use from voteit.core.plugins.majority_poll import MajorityPollPlugin self.poll.set_field_value('poll_plugin', MajorityPollPlugin.name) #Add proposals from voteit.core.models.proposal import Proposal p1 = Proposal(text = 'p1', creators = ['admin'], aid = 'one') p1.uid = 'p1uid' #To make it simpler to test against ai['p1'] = p1 p2 = Proposal(text = 'p2', creators = ['admin'], aid = 'two') p2.uid = 'p2uid' #To make it simpler to test against ai['p2'] = p2 #Select proposals for this poll self.poll.proposal_uids = (p1.uid, p2.uid, ) self.ai = ai
def _fixture(self): #register as adapter self.config.registry.registerAdapter(self._cut, name=self._cut.name) self.config.include('arche.testing.catalog') root = bootstrap_and_fixture(self.config) #Add agenda item - needed for lookups root['ai'] = ai = AgendaItem() #Add a poll ai['poll'] = Poll() #Wrap in correct context poll = ai['poll'] #Add proposals ai['p1'] = p1 = Proposal(text='p1', uid='p1uid') ai['p2'] = p2 = Proposal(text='p2', uid='p2uid') #Select proposals for this poll poll.proposal_uids = ( p1.uid, p2.uid, ) poll.set_field_value('poll_plugin', 'dutt_poll') return ai
def test_verify_object(self): self.failUnless(verifyObject(IPollPlugin, self._cut(Poll())))
def test_poll_plugin(self): poll = Poll() self.failUnless( self.config.registry.queryAdapter(poll, IPollPlugin, name=u'dutt_poll'))
def test_get_settings_schema(self): obj = self._cut(Poll()) schema = obj.get_settings_schema() self.assertIsInstance(schema, colander.SchemaNode) self.assertNotIn('winners', schema)
def test_verify_obj_implementation(self): obj = self._cut(Poll()) self.failUnless(verifyObject(IPollPlugin, obj))