diff options
Diffstat (limited to 'pydis_site')
| -rw-r--r-- | pydis_site/apps/events/tests/test_views.py | 16 | ||||
| -rw-r--r-- | pydis_site/apps/events/views/page.py | 15 | ||||
| -rw-r--r-- | pydis_site/settings.py | 9 | 
3 files changed, 15 insertions, 25 deletions
| diff --git a/pydis_site/apps/events/tests/test_views.py b/pydis_site/apps/events/tests/test_views.py index 9561255f..0db0ef9a 100644 --- a/pydis_site/apps/events/tests/test_views.py +++ b/pydis_site/apps/events/tests/test_views.py @@ -1,12 +1,11 @@  from pathlib import Path -from unittest.mock import patch  from django.conf import settings -from django.test import TestCase +from django.test import TestCase, override_settings  from django_hosts.resolvers import reverse -PAGES_PATH = Path(settings.BASE_DIR, "pydis_site", "apps", "events", "tests", "test-pages") +PAGES_PATH = Path(settings.BASE_DIR, "pydis_site", "templates", "events", "test-pages")  class IndexTests(TestCase): @@ -18,7 +17,7 @@ class IndexTests(TestCase):  class PageTests(TestCase): -    @patch("pydis_site.apps.events.views.page.PAGES_PATH", new=PAGES_PATH) +    @override_settings(PAGES_PATH=PAGES_PATH)      def test_valid_event_page_reponse_200(self):          """Should return response code 200 when visiting valid event page."""          pages = ( @@ -30,7 +29,7 @@ class PageTests(TestCase):                  resp = self.client.get(page)                  self.assertEqual(resp.status_code, 200) -    @patch("pydis_site.apps.events.views.page.PAGES_PATH", new=PAGES_PATH) +    @override_settings(PAGES_PATH=PAGES_PATH)      def test_invalid_event_page_404(self):          """Should return response code 404 when visiting invalid event page."""          pages = ( @@ -41,10 +40,3 @@ class PageTests(TestCase):              with self.subTest(page=page):                  resp = self.client.get(page)                  self.assertEqual(resp.status_code, 404) - -    @patch("pydis_site.apps.events.views.page.PAGES_PATH") -    def test_removing_trailing_slash_from_path(self, path_mock): -        """Should remove trailing slash from path when this exists there.""" -        url = reverse("events:page", ("this-is-my-event/",)) -        self.client.get(url) -        path_mock.joinpath.assert_called_with("this-is-my-event") diff --git a/pydis_site/apps/events/views/page.py b/pydis_site/apps/events/views/page.py index 1e3532f9..d3dcdf3f 100644 --- a/pydis_site/apps/events/views/page.py +++ b/pydis_site/apps/events/views/page.py @@ -1,27 +1,24 @@ -from pathlib import Path  from typing import List  from django.conf import settings  from django.http import Http404  from django.views.generic import TemplateView -PAGES_PATH = Path(settings.BASE_DIR, "pydis_site", "apps", "events", "pages") -  class PageView(TemplateView):      """Handles event pages showing."""      def get_template_names(self) -> List[str]: -        """Get specific template names""" -        page_path = PAGES_PATH / self.kwargs['path'] -        if page_path.exists() and page_path.is_dir(): -            page_path = page_path.joinpath("_index.html") +        """Get specific template names.""" +        page_path = settings.PAGES_PATH / self.kwargs['path'] +        if page_path.is_dir(): +            page_path = page_path / "_index.html"              self.kwargs['path'] = f"{self.kwargs['path']}/_index.html"          else: -            page_path = PAGES_PATH.joinpath(f"{self.kwargs['path']}.html") +            page_path = settings.PAGES_PATH / f"{self.kwargs['path']}.html"              self.kwargs['path'] = f"{self.kwargs['path']}.html"          if not page_path.exists():              raise Http404 -        return [self.kwargs['path']] +        return [f"events/{settings.PAGES_PATH.name}/{self.kwargs['path']}"] diff --git a/pydis_site/settings.py b/pydis_site/settings.py index 0387567f..67afdbcb 100644 --- a/pydis_site/settings.py +++ b/pydis_site/settings.py @@ -13,6 +13,7 @@ https://docs.djangoproject.com/en/2.1/ref/settings/  import os  import secrets  import sys +from pathlib import Path  import environ  import sentry_sdk @@ -117,13 +118,13 @@ MIDDLEWARE = [  ]  ROOT_URLCONF = 'pydis_site.urls' +# Path for events pages +PAGES_PATH = Path(BASE_DIR, "pydis_site", "templates", "events", "pages") +  TEMPLATES = [      {          'BACKEND': 'django.template.backends.django.DjangoTemplates', -        'DIRS': [ -            os.path.join(BASE_DIR, 'pydis_site', 'templates'), -            os.path.join(BASE_DIR, 'pydis_site', 'apps', 'events', 'pages'), -        ], +        'DIRS': [os.path.join(BASE_DIR, 'pydis_site', 'templates')],          'APP_DIRS': True,          'OPTIONS': {              'builtins': [ | 
