From 3fac4319a7da0b790fd9779eccd673f013c0edf8 Mon Sep 17 00:00:00 2001 From: Fred Pauchet Date: Thu, 6 Jan 2022 10:48:03 +0100 Subject: [PATCH 1/4] Create 'core' app Move 'config.views' inside this new application. The objective will be to decouple the configuration from core files. --- config/settings.py | 1 + ultron/core/__init__.py | 0 ultron/core/admin.py | 3 +++ ultron/core/apps.py | 6 ++++++ ultron/core/migrations/__init__.py | 0 ultron/core/tests.py | 9 +++++++++ ultron/core/urls.py | 0 {config => ultron/core}/views.py | 2 -- ultron/people/tests.py | 15 ++++++++++++--- 9 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 ultron/core/__init__.py create mode 100644 ultron/core/admin.py create mode 100644 ultron/core/apps.py create mode 100644 ultron/core/migrations/__init__.py create mode 100644 ultron/core/tests.py create mode 100644 ultron/core/urls.py rename {config => ultron/core}/views.py (99%) diff --git a/config/settings.py b/config/settings.py index 0045ade13e..01f935418d 100644 --- a/config/settings.py +++ b/config/settings.py @@ -43,6 +43,7 @@ INSTALLED_APPS = [ 'django.contrib.messages', 'django.contrib.staticfiles', 'django_extensions', + "ultron.core", 'ultron.location', 'ultron.people', 'ultron.followup', diff --git a/ultron/core/__init__.py b/ultron/core/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/ultron/core/admin.py b/ultron/core/admin.py new file mode 100644 index 0000000000..8c38f3f3da --- /dev/null +++ b/ultron/core/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/ultron/core/apps.py b/ultron/core/apps.py new file mode 100644 index 0000000000..80dfae556a --- /dev/null +++ b/ultron/core/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class CoreConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'ultron.core' diff --git a/ultron/core/migrations/__init__.py b/ultron/core/migrations/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/ultron/core/tests.py b/ultron/core/tests.py new file mode 100644 index 0000000000..af52f94dd1 --- /dev/null +++ b/ultron/core/tests.py @@ -0,0 +1,9 @@ +from django.test import TestCase +from django.urls import reverse + + +class HomeTests(TestCase): + def test_home_view_status_code(self): + url = reverse("home") + response = self.client.get(url) + self.assertEquals(response.status_code, 200) diff --git a/ultron/core/urls.py b/ultron/core/urls.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/config/views.py b/ultron/core/views.py similarity index 99% rename from config/views.py rename to ultron/core/views.py index 6f4a1cbd89..c0fd3df20b 100644 --- a/config/views.py +++ b/ultron/core/views.py @@ -1,6 +1,4 @@ from datetime import datetime, timedelta, date -from functools import reduce -import operator from django.db.models import Q from django.shortcuts import render diff --git a/ultron/people/tests.py b/ultron/people/tests.py index 7ab074ed5c..681701d970 100644 --- a/ultron/people/tests.py +++ b/ultron/people/tests.py @@ -1,7 +1,16 @@ -from django.test import TestCase -from ultron.people.models import Gymnast from datetime import datetime -# import pytest + +from django.test import TestCase +from django.urls import reverse + +from ultron.people.models import Gymnast + +class HomeTests(TestCase): + def test_home_view_status_code(self): + url = reverse("home") + response = self.client.get(url) + self.assertEquals(response.status_code, 200) + class GymnastTestCase(TestCase): def test_gymnast_tostring(self): From 3fad961353e00bd25788c950a3fb9a7bced10aae Mon Sep 17 00:00:00 2001 From: Fred Pauchet Date: Thu, 6 Jan 2022 16:20:37 +0100 Subject: [PATCH 2/4] Get rid of 'config.views'... --- config/urls.py | 9 +-------- ultron/core/urls.py | 11 +++++++++++ ultron/followup/admin.py | 1 - 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/config/urls.py b/config/urls.py index b743df75eb..5e57c0d298 100644 --- a/config/urls.py +++ b/config/urls.py @@ -16,7 +16,6 @@ Including another URLconf from django.contrib import admin from django.urls import include, path -import config.views import ultron.followup.urls import ultron.location.urls import ultron.people.urls @@ -25,9 +24,6 @@ import ultron.planning.urls import ultron.objective.urls urlpatterns = [ - # Global search - path(r"search/", config.views.search, name="global_search"), - # Profile list path(r"profile/", include(ultron.profiles.urls.profile_urlpatterns)), @@ -56,10 +52,7 @@ urlpatterns = [ # Planning management path(r"event/", include(ultron.planning.urls.event_urlpatterns)), - # Login & logout - path(r"login/", config.views.login, name="login"), - path(r"logout/", config.views.logout, name="logout"), - path(r"", config.views.home, name="home"), + path("", include("ultron.core.urls")), # Administration path('admin/', admin.site.urls), diff --git a/ultron/core/urls.py b/ultron/core/urls.py index e69de29bb2..aaabb313a8 100644 --- a/ultron/core/urls.py +++ b/ultron/core/urls.py @@ -0,0 +1,11 @@ +from django.urls import path + +from .views import login, logout, home, search + + +urlpatterns = [ + path(r"search/", search, name="global_search"), + path(r"login/", login, name="login"), + path(r"logout/", logout, name="logout"), + path(r"", home, name="home"), +] diff --git a/ultron/followup/admin.py b/ultron/followup/admin.py index b3501f9731..ac719f3ae6 100644 --- a/ultron/followup/admin.py +++ b/ultron/followup/admin.py @@ -1,7 +1,6 @@ from django.contrib import admin from django.db.models import fields -from config.views import search from .models import ( Chrono, LearnedSkill, From 292c97c64f7cc5197dfe7acb4355c7059f421583 Mon Sep 17 00:00:00 2001 From: Fred Pauchet Date: Thu, 6 Jan 2022 16:47:19 +0100 Subject: [PATCH 3/4] Make tests pass on home page --- config/settings.py | 2 +- ultron/core/tests.py | 18 +++++++++++++++++- ultron/people/tests.py | 6 ------ 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/config/settings.py b/config/settings.py index 01f935418d..4d99e6ce29 100644 --- a/config/settings.py +++ b/config/settings.py @@ -145,4 +145,4 @@ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' # Simplified static file serving. # https://warehouse.python.org/project/whitenoise/ -STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' +#STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' diff --git a/ultron/core/tests.py b/ultron/core/tests.py index af52f94dd1..e11f0c31af 100644 --- a/ultron/core/tests.py +++ b/ultron/core/tests.py @@ -1,9 +1,25 @@ +from django.contrib.auth import get_user_model from django.test import TestCase from django.urls import reverse +USER = get_user_model() + + class HomeTests(TestCase): - def test_home_view_status_code(self): + def setUp(self): + self.user = USER.objects.create( + username="jbond", email="james@hms.co.uk", password="007" + ) + + def test_home_view_anonymous_redirected_statuts_code(self): url = reverse("home") response = self.client.get(url) + self.assertEquals(response.status_code, 302) + + def test_home_view_status_code_with_user_connected(self): + login_result = self.client.login(username="jbond", password="007") + + url = reverse("home") + response = self.client.get(url, follow=True) self.assertEquals(response.status_code, 200) diff --git a/ultron/people/tests.py b/ultron/people/tests.py index 681701d970..287e9d31bd 100644 --- a/ultron/people/tests.py +++ b/ultron/people/tests.py @@ -5,12 +5,6 @@ from django.urls import reverse from ultron.people.models import Gymnast -class HomeTests(TestCase): - def test_home_view_status_code(self): - url = reverse("home") - response = self.client.get(url) - self.assertEquals(response.status_code, 200) - class GymnastTestCase(TestCase): def test_gymnast_tostring(self): From 62fed584b438291163c7090a092008dac36806ed Mon Sep 17 00:00:00 2001 From: Fred Pauchet Date: Thu, 6 Jan 2022 16:52:40 +0100 Subject: [PATCH 4/4] There is still a bug with whitenoise and static files storage --- config/settings.py | 2 +- ultron/core/tests.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/config/settings.py b/config/settings.py index 4d99e6ce29..01f935418d 100644 --- a/config/settings.py +++ b/config/settings.py @@ -145,4 +145,4 @@ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' # Simplified static file serving. # https://warehouse.python.org/project/whitenoise/ -#STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' +STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' diff --git a/ultron/core/tests.py b/ultron/core/tests.py index e11f0c31af..37f889468a 100644 --- a/ultron/core/tests.py +++ b/ultron/core/tests.py @@ -18,6 +18,10 @@ class HomeTests(TestCase): self.assertEquals(response.status_code, 302) def test_home_view_status_code_with_user_connected(self): + """Note: This test will switch to green once we will get rid of whitenoise + + See https://stackoverflow.com/questions/50658241/django-doesnt-load-static-files-valueerrormissing-staticfiles-manifest-entry + """ login_result = self.client.login(username="jbond", password="007") url = reverse("home")