From abb42bcbb8748f3df10a681d11095c351d6bfa7a Mon Sep 17 00:00:00 2001 From: Joshua Santos Date: Sep 01 2015 10:46:47 +0000 Subject: Add IRC Revote tests --- diff --git a/tests/test_flask_irc.py b/tests/test_flask_irc.py index 9c45fa4..4fc6b69 100644 --- a/tests/test_flask_irc.py +++ b/tests/test_flask_irc.py @@ -55,14 +55,6 @@ class FlaskIrcElectionstests(ModelFlasktests): self.setup_db() - user = FakeUser(['packager'], username='toshio') - with user_set(fedora_elections.APP, user): - output = self.app.get( - '/vote/test_election7', follow_redirects=True) - self.assertTrue( - 'class="message">You have already voted in the election!Next 1 elections' in output.data) self.assertTrue('

Last 2 elections

' in output.data) + def test_vote_irc_revote(self): + """ Test the vote_irc function - the re-voting part. """ + #First we need to vote + self.setup_db() + + user = FakeUser(['voters'], username='nerdsville') + with user_set(fedora_elections.APP, user): + retrieve_csrf = self.app.post('/vote/test_election7') + csrf_token = retrieve_csrf.data.split( + 'name="csrf_token" type="hidden" value="')[1].split('">')[0] + # Valid input + data = { + 'Kevin': -1, + 'Toshio': 1, + 'action': 'submit', + 'csrf_token': csrf_token, + } + self.app.post('/vote/test_election7', data=data, follow_redirects=True) + vote = fedora_elections.models.Vote + votes = vote.of_user_on_election(self.session, "nerdsville", '7') + self.assertEqual(votes[0].value, 1) + self.assertEqual(votes[1].value, -1) + #Let's not do repetition of what is tested above we aren't testing the + #functionality of voting as that has already been asserted + + #Next, we need to try revoting + newdata = { + 'Kevin': 1, + 'Toshio': -1, + 'action': 'submit', + 'csrf_token': csrf_token, + } + output = self.app.post('/vote/test_election7', data=newdata, follow_redirects=True) + #Next, we need to check if the vote has been recorded + self.assertEqual(output.status_code, 200) + self.assertTrue( + 'class="message">Your vote has been recorded. Thank you!Current elections' in output.data) + self.assertTrue('

Next 1 elections

' in output.data) + self.assertTrue('

Last 2 elections

' in output.data) + vote = fedora_elections.models.Vote + votes = vote.of_user_on_election(self.session, "nerdsville", '7') + self.assertEqual(votes[0].value, -1) + self.assertEqual(votes[1].value, 1) + + #If we haven't failed yet, HOORAY! if __name__ == '__main__': SUITE = unittest.TestLoader().loadTestsFromTestCase(FlaskIrcElectionstests)