Add reddit revoke view tests

This commit is contained in:
Sonny Bakker 2020-09-18 21:39:59 +02:00
parent eb661b8abc
commit 5743dd7096

View file

@ -1,4 +1,3 @@
from unittest import skip
from unittest.mock import patch
from urllib.parse import urlencode
from uuid import uuid4
@ -8,7 +7,10 @@ from django.test import TestCase
from django.urls import reverse
from newsreader.accounts.tests.factories import UserFactory
from newsreader.news.collection.exceptions import StreamTooManyException
from newsreader.news.collection.exceptions import (
StreamException,
StreamTooManyException,
)
class RedditTemplateViewTestCase(TestCase):
@ -156,18 +158,69 @@ class RedditTokenRedirectViewTestCase(TestCase):
class RedditRevokeRedirectViewTestCase(TestCase):
@skip("Not implemented")
def setUp(self):
self.user = UserFactory(email="test@test.nl", password="test")
self.client.force_login(self.user)
self.patch = patch("newsreader.accounts.views.integrations.revoke_reddit_token")
self.mocked_revoke = self.patch.start()
def test_simple(self):
pass
self.user.reddit_access_token = "jadajadajada"
self.user.reddit_refresh_token = "jadajadajada"
self.user.save()
self.mocked_revoke.return_value = True
response = self.client.get(reverse("accounts:reddit-revoke"))
self.assertRedirects(response, reverse("accounts:integrations"))
self.mocked_revoke.assert_called_once_with(self.user)
self.user.refresh_from_db()
self.assertEquals(self.user.reddit_access_token, None)
self.assertEquals(self.user.reddit_refresh_token, None)
@skip("Not implemented")
def test_no_refresh_token(self):
pass
self.user.reddit_refresh_token = None
self.user.save()
response = self.client.get(reverse("accounts:reddit-revoke"))
self.assertRedirects(response, reverse("accounts:integrations"))
self.mocked_revoke.assert_not_called()
@skip("Not implemented")
def test_unsuccessful_response(self):
pass
self.user.reddit_access_token = "jadajadajada"
self.user.reddit_refresh_token = "jadajadajada"
self.user.save()
self.mocked_revoke.return_value = False
response = self.client.get(reverse("accounts:reddit-revoke"))
self.assertRedirects(response, reverse("accounts:integrations"))
self.user.refresh_from_db()
self.assertEquals(self.user.reddit_access_token, "jadajadajada")
self.assertEquals(self.user.reddit_refresh_token, "jadajadajada")
@skip("Not implemented")
def test_stream_exception(self):
pass
self.user.reddit_access_token = "jadajadajada"
self.user.reddit_refresh_token = "jadajadajada"
self.user.save()
self.mocked_revoke.side_effect = StreamException
response = self.client.get(reverse("accounts:reddit-revoke"))
self.assertRedirects(response, reverse("accounts:integrations"))
self.user.refresh_from_db()
self.assertEquals(self.user.reddit_access_token, "jadajadajada")
self.assertEquals(self.user.reddit_refresh_token, "jadajadajada")