From 9dc5217f578a06555d592c9cd3ccd365f8a7a5a7 Mon Sep 17 00:00:00 2001 From: Vlad Utkin Date: Sun, 7 Jan 2018 22:40:56 +0300 Subject: [PATCH] Home page tests --- app/tests.py | 27 +++++++++++++++++++++++++++ app/views.py | 5 +++-- noniko/settings.py | 1 + static/style.css | 2 +- templates/home.html | 4 ++-- 5 files changed, 34 insertions(+), 5 deletions(-) diff --git a/app/tests.py b/app/tests.py index 7ce503c..8cbdf5d 100644 --- a/app/tests.py +++ b/app/tests.py @@ -1,3 +1,30 @@ from django.test import TestCase +from app.models import Setting +from django.conf import settings # Create your tests here. + + +class HomeTestCase(TestCase): + """Home page is loading and translates correctly""" + def setUp(self): + Setting.objects.create(name='app_home_head_html', language='en', string='A correct english string') + Setting.objects.create(name='app_home_head_html', language='ru', string='Строка русского текста') + Setting.objects.create(name='app_home_body_html', language='en', string='A
correct

HTML

string') + + def test_load(self): + response = self.client.get('/') + self.assertContains(response, 'A correct english string', 1, 200) + self.assertContains(response, 'A
correct

HTML

string', 1, 200) + self.assertContains(response, settings.APP_NAME) + + def test_ru_cookie_load(self): + self.client.cookies.load({settings.LANGUAGE_COOKIE_NAME: 'ru'}) + response = self.client.get('/') + self.assertContains(response, 'Строка русского текста', 1, 200) + self.assertContains(response, '', 1, 200) + + def test_ru_header_load(self): + response = self.client.get('/', HTTP_ACCEPT_LANGUAGE='ru') + self.assertContains(response, 'Строка русского текста', 1, 200) + self.assertContains(response, '', 1, 200) diff --git a/app/views.py b/app/views.py index 4457278..cd0a878 100644 --- a/app/views.py +++ b/app/views.py @@ -2,6 +2,7 @@ from django.shortcuts import render from django.utils.translation import gettext as _ from django.conf import settings from app.settings_db import get_setting +from django.utils import translation # Create your views here. @@ -11,6 +12,6 @@ def home(request): return render(request, 'home.html', { 'title': _('Home'), 'app_name': settings.APP_NAME, - 'app_description_text': get_setting('app_description_text'), - 'app_mainpage_html': get_setting('app_mainpage_html'), + 'app_home_head_html': get_setting('app_home_head_html', language=translation.get_language()), + 'app_home_body_html': get_setting('app_home_body_html', language=translation.get_language()), }) diff --git a/noniko/settings.py b/noniko/settings.py index 69eb310..0028c09 100644 --- a/noniko/settings.py +++ b/noniko/settings.py @@ -43,6 +43,7 @@ INSTALLED_APPS = [ MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', diff --git a/static/style.css b/static/style.css index b4fc289..2b9c8ac 100644 --- a/static/style.css +++ b/static/style.css @@ -22,7 +22,7 @@ table { } .error { color: red; - font-family: Roboto; + font-family: monospace; } hr { border-color: lime; diff --git a/templates/home.html b/templates/home.html index 95e3ec5..5447f20 100644 --- a/templates/home.html +++ b/templates/home.html @@ -4,10 +4,10 @@

{{ app_name }}

- {{ app_description_text|safe }} + {{ app_home_head_html|safe }}



- {{ app_mainpage_html|safe }} + {{ app_home_body_html|safe }} {% endblock %}