def test_vote_for_feature_no_credits_returns_failiure_and_message(self): ''' Test that voting for a feature with an empty of non-existent wallet returns success as False, and an appropriate message. ''' test_ticket = Ticket(user=self.test_user, title='Voting', ticket_type='Feature', content='Test content') test_ticket.save() voter = User.objects.create_user(username='******', email='*****@*****.**', password='******') result = test_ticket.vote(voter, 5) self.assertFalse(result['success']) self.assertIn('insufficient credits', result['message'].lower()) wallet = Wallet(user=voter) wallet.save() result = test_ticket.vote(voter, 5) self.assertFalse(result['success']) self.assertIn('insufficient credits', result['message'].lower())
def test_vote_for_bug_increases_votes(self): ''' Test that the vote method increases votes on bug type tickets. ''' test_ticket = Ticket(user=self.test_user, title='Voting', ticket_type='Bug', content='Test content') test_ticket.save() voter = User.objects.create_user(username='******', email='*****@*****.**', password='******') test_ticket.vote(voter) test_ticket = Ticket.objects.get(id=test_ticket.id) self.assertEqual(1, test_ticket.no_votes)
def test_vote_for_bug_twice_returns_failiure_and_message(self): ''' Test that voting for a bug a second time returns success as False, and an appropriate message. ''' test_ticket = Ticket(user=self.test_user, title='Voting', ticket_type='Bug', content='Test content') test_ticket.save() voter = User.objects.create_user(username='******', email='*****@*****.**', password='******') test_ticket.vote(voter) result = test_ticket.vote(voter) self.assertFalse(result['success']) self.assertIn('already voted', result['message'].lower())
def test_vote_for_bug_twice_does_not_increase_votes_a_second_time(self): ''' Test voting for a bug a second time does not increase the number of votes. ''' test_ticket = Ticket(user=self.test_user, title='Voting', ticket_type='Bug', content='Test content') test_ticket.save() voter = User.objects.create_user(username='******', email='*****@*****.**', password='******') test_ticket.vote(voter) test_ticket.vote(voter) test_ticket = Ticket.objects.get(id=test_ticket.id) self.assertEqual(1, test_ticket.no_votes)
def test_vote_for_feature_reduces_wallet_balance_by_credits_spent(self): ''' Test that voting for a feature debits the user the correct number of credits. ''' test_ticket = Ticket(user=self.test_user, title='Voting', ticket_type='Feature', content='Test content') test_ticket.save() voter = User.objects.create_user(username='******', email='*****@*****.**', password='******') wallet = Wallet(user=voter) wallet.save() wallet.credit(10) test_ticket.vote(voter, 5) voter_wallet = Wallet.objects.get(id=wallet.id) self.assertEqual(5, voter_wallet.balance)
def test_vote_for_feature_increases_votes_by_credits_spent(self): ''' Test that the vote method increases votes on feature type tickets by the number of credits spent. ''' test_ticket = Ticket(user=self.test_user, title='Voting', ticket_type='Feature', content='Test content') test_ticket.save() voter = User.objects.create_user(username='******', email='*****@*****.**', password='******') wallet = Wallet(user=voter) wallet.save() wallet.credit(10) test_ticket.vote(voter, 5) test_ticket = Ticket.objects.get(id=test_ticket.id) self.assertEqual(5, test_ticket.no_votes)
def test_vote_for_feature_twice_increase_votes_a_second_time(self): ''' Test voting for a feature a second time again increase the number of votes by the number of crdits spent. ''' test_ticket = Ticket(user=self.test_user, title='Voting', ticket_type='Feature', content='Test content') test_ticket.save() voter = User.objects.create_user(username='******', email='*****@*****.**', password='******') wallet = Wallet(user=voter) wallet.save() wallet.credit(10) test_ticket.vote(voter, 5) test_ticket.vote(voter, 3) test_ticket = Ticket.objects.get(id=test_ticket.id) self.assertEqual(8, test_ticket.no_votes)
def test_vote_for_feature_returns_success_and_message(self): ''' Test that voting for a feature returns success as True, and an appropriate message. ''' test_ticket = Ticket(user=self.test_user, title='Voting', ticket_type='Feature', content='Test content') test_ticket.save() voter = User.objects.create_user(username='******', email='*****@*****.**', password='******') wallet = Wallet(user=voter) wallet.save() wallet.credit(10) result = test_ticket.vote(voter, 5) self.assertTrue(result['success']) self.assertIn('success', result['message'].lower())