def test_vote_multiplies_no_extra_votes(self): meeting = _active_poll_fixture(self.config) _delegation_fixture(self.config, meeting) self.config.testing_securitypolicy(userid='mr_tester') poll = meeting['ai']['poll'] vote = Vote(creators = ['mr_tester'], notify = False) vote.set_vote_data('John Doe for pressy', notify = False) poll['mr_tester'] = vote self.assertEqual(len(poll.get_content()), 1)
def test_adjust_vote_existing(self): vote = _voting_fixture(self.config) poll = vote.__parent__ other = Vote(creators = ['one']) other.set_vote_data({'c': 3}, notify = False) poll['other'] = other obj = self._cut(vote) obj.adjust_vote('other') self.assertIn('other', poll) self.assertEqual(poll['other'].get_vote_data(), {'a': 1, 'b': 2})
def test_all_votes_change_on_update(self): meeting = _active_poll_fixture(self.config) _delegation_fixture(self.config, meeting) self.config.testing_securitypolicy(userid='mrs_tester') poll = meeting['ai']['poll'] vote = Vote(creators = ['mrs_tester'], notify = False ) vote.set_vote_data('Jane Doe for pressy', notify = False) poll['mrs_tester'] = vote vote.set_vote_data('Mrs tester for pressy instead') votes = poll.get_content() self.assertEqual(votes[0].get_vote_data(), 'Mrs tester for pressy instead') self.assertEqual(votes[0].get_vote_data(), votes[1].get_vote_data(), votes[2].get_vote_data())
def test_delegators_without_voting_perm(self): vote = _voting_fixture(self.config) self.config.testing_securitypolicy(userid = 'jane') poll = vote.__parent__ self.config.registry.settings['voteit.liquid.type'] = 'simple' self.config.include('voteit.liquid.models') obj = self._cut(vote) repr = IRepresentatives(obj.meeting) repr['jane'] = ('james', 'john') new_v = Vote(creators = ['jane']) new_v.set_vote_data({'a': 1}, notify = False) poll['jane'] = new_v self.assertNotIn('james', poll)
def test_adjust_vote_wont_touch_delegators_own_votes(self): vote = _voting_fixture(self.config) poll = vote.__parent__ obj = self._cut(vote) obj.repr.enable_representative('one') obj.repr.represent('one', 'other') other = Vote(creators = ['other']) other.set_vote_data({'c': 3}, notify = False) poll['other'] = other obj = self._cut(other) obj.adjust_vote('other') self.assertEqual(vote.get_vote_data(), {'a': 1, 'b': 2}) self.assertEqual(other.get_vote_data(), {'c': 3}) self.assertEqual(obj.repr.represented_by('other'), 'one')
def test_delegators_get_votes(self): self.config.include('pyramid_chameleon') vote = _voting_fixture(self.config) self.config.testing_securitypolicy(userid = 'jane') poll = vote.__parent__ unrestricted_wf_transition_to(poll, 'ongoing') self.config.registry.settings['voteit.liquid.type'] = 'simple' self.config.include('voteit.liquid.models') obj = self._cut(vote) root = obj.meeting.__parent__ root.users['james'] = User() root.users['john'] = User() obj.meeting.add_groups('james', ['role:Voter']) obj.meeting.add_groups('john', ['role:Voter']) repr = IRepresentatives(obj.meeting) repr['jane'] = ('james', 'john') new_v = Vote(creators = ['jane']) new_v.set_vote_data({'a': 1}, notify = False) poll['jane'] = new_v self.assertIn('james', poll) self.assertIn('john', poll) self.assertEqual(poll['james'].get_vote_data(), {'a': 1})
def _make_obj(self): from voteit.core.models.vote import Vote return Vote()
def _add_votes(self, poll): from voteit.core.models.vote import Vote ai = poll.__parent__ p1_uid = ai['prop1'].uid p2_uid = ai['prop2'].uid v1 = Vote(creators = ['one']) v1.set_vote_data({p1_uid: u'abstain', p2_uid: u'approve'}, notify = False) poll['v1'] = v1 v2 = Vote(creators = ['two']) v2.set_vote_data({p1_uid: u'approve', p2_uid: u'deny'}, notify = False) poll['v2'] = v2 v3 = Vote(creators = ['three']) v3.set_vote_data({p1_uid: u'approve'}, notify = False) poll['v3'] = v3 v4 = Vote(creators = ['four']) v4.set_vote_data({p1_uid: u'approve'}, notify = False) poll['v4'] = v4
def _make_vote(self, vote_data='hello_world'): from voteit.core.models.vote import Vote vote = Vote() vote.set_vote_data(vote_data) return vote