From 72f78f89aea318b843123af4c6e3c0b5d493b643 Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Fri, 18 Sep 2020 23:22:25 +0200 Subject: [PATCH] Add simple integration tests --- .../accounts/tests/test_integrations.py | 49 +++++++++++++++++++ src/newsreader/accounts/views/integrations.py | 1 - 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/src/newsreader/accounts/tests/test_integrations.py b/src/newsreader/accounts/tests/test_integrations.py index ae1eef0..098a126 100644 --- a/src/newsreader/accounts/tests/test_integrations.py +++ b/src/newsreader/accounts/tests/test_integrations.py @@ -6,6 +6,8 @@ from django.core.cache import cache from django.test import TestCase from django.urls import reverse +from bs4 import BeautifulSoup + from newsreader.accounts.tests.factories import UserFactory from newsreader.news.collection.exceptions import ( StreamException, @@ -13,6 +15,53 @@ from newsreader.news.collection.exceptions import ( ) +class IntegrationsViewTestCase(TestCase): + def setUp(self): + self.user = UserFactory(email="test@test.nl", password="test") + self.client.force_login(self.user) + + self.url = reverse("accounts:integrations") + + +class RedditIntegrationsTestCase(IntegrationsViewTestCase): + def test_reddit_authorization(self): + self.user.reddit_refresh_token = None + self.user.save() + + response = self.client.get(self.url) + + soup = BeautifulSoup(response.content, features="lxml") + button = soup.find("a", class_="link button button--reddit") + + self.assertEquals(button.text.strip(), "Authorize account") + + def test_reddit_refresh_token(self): + self.user.reddit_refresh_token = "jadajadajada" + self.user.reddit_access_token = None + self.user.save() + + response = self.client.get(self.url) + + soup = BeautifulSoup(response.content, features="lxml") + button = soup.find("a", class_="link button button--reddit") + + self.assertEquals(button.text.strip(), "Refresh token") + + def test_reddit_revoke(self): + self.user.reddit_refresh_token = "jadajadajada" + self.user.reddit_access_token = None + self.user.save() + + response = self.client.get(self.url) + + soup = BeautifulSoup(response.content, features="lxml") + buttons = soup.find_all("a", class_="link button button--reddit") + + self.assertIn( + "Deauthorize account", [button.text.strip() for button in buttons] + ) + + class RedditTemplateViewTestCase(TestCase): def setUp(self): self.user = UserFactory(email="test@test.nl", password="test") diff --git a/src/newsreader/accounts/views/integrations.py b/src/newsreader/accounts/views/integrations.py index 3fecf32..fa343a2 100644 --- a/src/newsreader/accounts/views/integrations.py +++ b/src/newsreader/accounts/views/integrations.py @@ -18,7 +18,6 @@ from newsreader.news.collection.tasks import RedditTokenTask logger = logging.getLogger(__name__) -# TODO add tests class IntegrationsView(TemplateView): template_name = "accounts/views/integrations.html"