def setUp(self): super(VerifyTests, self).setUp() Flag.objects.create(name='voting', everyone=True) self.factory = RequestFactory() self.request = self.factory.post('/') self.user = UserFactory.create() self.request.user = self.user SessionMiddleware().process_request(self.request) self.verify = Verify(request=self.request)
class VerifyTests(TestCase): def setUp(self): super(VerifyTests, self).setUp() Flag.objects.create(name='voting', everyone=True) self.factory = RequestFactory() self.request = self.factory.post('/') self.user = UserFactory.create() self.request.user = self.user SessionMiddleware().process_request(self.request) self.verify = Verify(request=self.request) def test_login_success_no_key(self, mock_super): """If there is no video id in the session, do nothing.""" response = self.verify.login_success(1, 'asdf', blah='foo') login_success = mock_super.return_value.login_success eq_(response, login_success.return_value) login_success.assert_called_with(1, 'asdf', blah='foo') def test_login_success_invalid_video(self, mock_super): """If the video ID is invalid, remove the session key and abort.""" self.request.session['vote_video'] = 'asdf' self.verify.login_success() ok_('vote_video' not in self.request.session) ok_(not Vote.objects.filter(user=self.user).exists()) def test_login_success_missing_video(self, mock_super): """ If the video ID doesn't match an existing video, remove the session key and abort. """ self.request.session['vote_video'] = '99999' self.verify.login_success() ok_('vote_video' not in self.request.session) ok_(not Vote.objects.filter(user=self.user).exists()) def test_login_success_vote_exists(self, mock_super): """ If the user has already voted for the video, remove the session key and do nothing. """ video = VideoFactory.create() Vote.objects.create(user=self.user, video=video) self.request.session['vote_video'] = unicode(video.id) self.verify.login_success() ok_('vote_video' not in self.request.session) eq_(Vote.objects.filter(user=self.user, video=video).count(), 1) def test_login_success_no_vote(self, mock_super): """ If the user hasn't voted for the video, create a vote for it and remove the session key. """ video = VideoFactory.create() self.request.session['vote_video'] = unicode(video.id) self.verify.login_success() ok_('vote_video' not in self.request.session) eq_(Vote.objects.filter(user=self.user, video=video).count(), 1) def test_login_failure_no_key(self, mock_super): """If login fails and the user wasn't voting, do nothing.""" response = self.verify.login_failure(1, 'asdf', foo='bar') login_failure = mock_super.return_value.login_failure eq_(response, login_failure.return_value) login_failure.assert_called_with(1, 'asdf', foo='bar') def test_login_failure_with_key(self, mock_super): """If the session key for voting exists when login fails, remove it.""" self.request.session['vote_video'] = '392' self.verify.login_failure() ok_('vote_video' not in self.request.session)