summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitor Freitas2019-01-16 10:55:57 +0200
committerVitor Freitas2019-01-16 10:55:57 +0200
commitca121064e945a399543771f248a70a80585ec214 (patch)
tree7f7674193eee26f172378f2beafccdf641e1455a
parent9ace7627d5e9cd7ae314f0499b2d0f4a659111fb (diff)
downloadcolossus-ca121064e945a399543771f248a70a80585ec214.tar.gz
colossus-ca121064e945a399543771f248a70a80585ec214.tar.bz2
colossus-ca121064e945a399543771f248a70a80585ec214.zip
Remove old home page. Move dashboard view to empty path. Add tests for core views.
-rw-r--r--colossus/apps/core/tests/test_views.py40
-rw-r--r--colossus/apps/core/views.py5
-rw-r--r--colossus/apps/subscribers/urls.py1
-rw-r--r--colossus/apps/subscribers/views.py6
-rw-r--r--colossus/templates/base.html2
-rw-r--r--colossus/urls.py2
6 files changed, 42 insertions, 14 deletions
diff --git a/colossus/apps/core/tests/test_views.py b/colossus/apps/core/tests/test_views.py
new file mode 100644
index 0000000..b7b1e76
--- /dev/null
+++ b/colossus/apps/core/tests/test_views.py
@@ -0,0 +1,40 @@
+from django.urls import resolve, reverse
+
+from colossus.apps.core import views
+from colossus.test.testcases import AuthenticatedTestCase, TestCase
+
+
+class CoreLoginRequiredTests(TestCase):
+ """
+ Test if all the urls from core's app are protected with login_required decorator
+ Perform a GET request to all urls. The expected outcome is a redirection
+ to the login page.
+ """
+ def test_redirection(self):
+ patterns = [
+ 'dashboard',
+ 'settings',
+ ]
+ for url_name in patterns:
+ with self.subTest(url_name=url_name):
+ url = reverse(url_name)
+ response = self.client.get(url)
+ self.assertRedirectsLoginRequired(response, url)
+
+
+class DashboardViewTests(AuthenticatedTestCase):
+ def setUp(self):
+ super().setUp()
+ self.url = reverse('dashboard')
+ self.response = self.client.get(self.url)
+
+ def test_status_code_200(self):
+ self.assertEqual(self.response.status_code, 200)
+
+ def test_view_function(self):
+ view = resolve('/')
+ self.assertEqual(view.func, views.dashboard)
+
+ def test_response_context(self):
+ context = self.response.context
+ self.assertEqual('dashboard', context['menu'])
diff --git a/colossus/apps/core/views.py b/colossus/apps/core/views.py
index b70ec9c..1c9c488 100644
--- a/colossus/apps/core/views.py
+++ b/colossus/apps/core/views.py
@@ -44,11 +44,6 @@ def dashboard(request):
})
-@login_required
-def settings(request):
- return render(request, 'core/settings.html', {'menu': 'settings'})
-
-
def setup(request):
if User.objects.exists() or MailingList.objects.exists():
return redirect('dashboard')
diff --git a/colossus/apps/subscribers/urls.py b/colossus/apps/subscribers/urls.py
index f708ebb..1aacce8 100644
--- a/colossus/apps/subscribers/urls.py
+++ b/colossus/apps/subscribers/urls.py
@@ -6,7 +6,6 @@ app_name = 'subscribers'
urlpatterns = [
- path('', views.IndexView.as_view(), name='index'),
path('manage/', views.manage, name='manage'),
path('goodbye/<uuid:mailing_list_uuid>/', views.goodbye, name='goodbye'),
path('subscribe/<uuid:mailing_list_uuid>/', views.subscribe, name='subscribe'),
diff --git a/colossus/apps/subscribers/views.py b/colossus/apps/subscribers/views.py
index 482a546..b85c994 100644
--- a/colossus/apps/subscribers/views.py
+++ b/colossus/apps/subscribers/views.py
@@ -13,7 +13,6 @@ from django.views.decorators.csrf import csrf_exempt
from django.views.decorators.http import (
require_GET, require_http_methods, require_POST,
)
-from django.views.generic import View
import requests
from ratelimit.decorators import ratelimit
@@ -30,11 +29,6 @@ from .models import Subscriber
logger = logging.getLogger(__name__)
-class IndexView(View):
- def get(self, request):
- return HttpResponse('Hi there! :)', content_type='text/plain')
-
-
@csrf_exempt
@require_POST
def manage(request):
diff --git a/colossus/templates/base.html b/colossus/templates/base.html
index 4b550a3..761755a 100644
--- a/colossus/templates/base.html
+++ b/colossus/templates/base.html
@@ -18,7 +18,7 @@
</head>
<body>
{% block body %}
- <nav class="navbar navbar-expand-lg navbar-light py-3 mb-3" style="background-color:#fff;">
+ <nav class="navbar navbar-expand-lg navbar-light py-3 mb-3 shadow-sm" style="background-color:#fff;">
<a class="navbar-brand" href="{% url 'dashboard' %}">Colossus</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#mainMenu" aria-controls="mainMenu"
aria-expanded="false" aria-label="Toggle navigation">
diff --git a/colossus/urls.py b/colossus/urls.py
index 47cebaf..e49b97d 100644
--- a/colossus/urls.py
+++ b/colossus/urls.py
@@ -4,10 +4,10 @@ from django.urls import include, path
from colossus.apps.core import views as core_views
urlpatterns = [
+ path('', core_views.dashboard, name='dashboard'),
path('', include('colossus.apps.subscribers.urls', namespace='subscribers')),
path('setup/', core_views.setup, name='setup'),
path('setup/account/', core_views.setup_account, name='setup_account'),
- path('dashboard/', core_views.dashboard, name='dashboard'),
path('settings/', core_views.SiteUpdateView.as_view(), name='settings'),
path('accounts/', include('colossus.apps.accounts.urls')),
path('lists/', include('colossus.apps.lists.urls', namespace='lists')),