diff options
author | Vitor Freitas | 2019-01-16 10:55:57 +0200 |
---|---|---|
committer | Vitor Freitas | 2019-01-16 10:55:57 +0200 |
commit | ca121064e945a399543771f248a70a80585ec214 (patch) | |
tree | 7f7674193eee26f172378f2beafccdf641e1455a | |
parent | 9ace7627d5e9cd7ae314f0499b2d0f4a659111fb (diff) | |
download | colossus-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.py | 40 | ||||
-rw-r--r-- | colossus/apps/core/views.py | 5 | ||||
-rw-r--r-- | colossus/apps/subscribers/urls.py | 1 | ||||
-rw-r--r-- | colossus/apps/subscribers/views.py | 6 | ||||
-rw-r--r-- | colossus/templates/base.html | 2 | ||||
-rw-r--r-- | colossus/urls.py | 2 |
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')), |