From b15d4191726d2d380c9f989dfa7c5cd641b0e2d0 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 4 May 2016 15:57:09 -0400 Subject: [PATCH] Fix statistics detail view error. GitLab issue #270. @bat79a --- mayan/apps/statistics/apps.py | 1 + mayan/apps/statistics/tests/__init__.py | 0 mayan/apps/statistics/tests/test_views.py | 38 +++++++++++++++++++++++ mayan/apps/statistics/views.py | 4 +-- 4 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 mayan/apps/statistics/tests/__init__.py create mode 100644 mayan/apps/statistics/tests/test_views.py diff --git a/mayan/apps/statistics/apps.py b/mayan/apps/statistics/apps.py index b2944fe097..6cd62a7e95 100644 --- a/mayan/apps/statistics/apps.py +++ b/mayan/apps/statistics/apps.py @@ -20,6 +20,7 @@ from .tasks import task_execute_statistic # NOQA - Force registration of task class StatisticsApp(MayanAppConfig): name = 'statistics' + test = True verbose_name = _('Statistics') def ready(self): diff --git a/mayan/apps/statistics/tests/__init__.py b/mayan/apps/statistics/tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/mayan/apps/statistics/tests/test_views.py b/mayan/apps/statistics/tests/test_views.py new file mode 100644 index 0000000000..f8b200909d --- /dev/null +++ b/mayan/apps/statistics/tests/test_views.py @@ -0,0 +1,38 @@ +from __future__ import unicode_literals + +from django.contrib.auth import get_user_model + +from common.tests.test_views import GenericViewTestCase + +from user_management.tests.literals import ( + TEST_USER_PASSWORD, TEST_USER_USERNAME +) + +from ..classes import Statistic +from ..permissions import permission_statistics_view + + +class StatisticsViewTestCase(GenericViewTestCase): + def test_statistic_detail_view_no_permissions(self): + self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + + statistic = Statistic.get_all()[0] + + response = self.get( + 'statistics:statistic_detail', args=(statistic.slug,) + ) + + self.assertEqual(response.status_code, 403) + + def test_statistic_detail_view_with_permissions(self): + self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + + self.role.permissions.add(permission_statistics_view.stored_permission) + + statistic = Statistic.get_all()[0] + + response = self.get( + 'statistics:statistic_detail', args=(statistic.slug,) + ) + + self.assertEqual(response.status_code, 200) diff --git a/mayan/apps/statistics/views.py b/mayan/apps/statistics/views.py index 5d9f8a2eb9..15a8f541cc 100644 --- a/mayan/apps/statistics/views.py +++ b/mayan/apps/statistics/views.py @@ -5,7 +5,7 @@ from django.http import Http404 from django.utils.translation import ugettext_lazy as _ from common.generics import ( - ConfirmView, SingleObjectDetailView, SingleObjectListView + ConfirmView, SimpleView, SingleObjectDetailView, SingleObjectListView ) from .classes import Statistic, StatisticNamespace @@ -42,7 +42,7 @@ class NamespaceDetailView(SingleObjectListView): return self.get_namespace().statistics -class StatisticDetailView(SingleObjectDetailView): +class StatisticDetailView(SimpleView): view_permission = permission_statistics_view def get_extra_context(self):