mirror of
https://github.com/django/django.git
synced 2025-08-17 17:20:38 +00:00

Debian packages unconditionally byte-compile .py files on installation and
do not silence errors by design. Therefore, we need a way of shipping these
invalid .py files without a .py extension but ensuring that when we
template them, they end up as .py.
We don't special-case .py files so that the all the TemplateCommand
command-line options (eg. extra_files and extensions) still work entirely
as expected and it may even be useful for other formats too.
Backport of abc0777b63
from master
44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
import os
|
|
import shutil
|
|
import unittest
|
|
|
|
from django import conf
|
|
from django.test import TestCase
|
|
from django.utils import six
|
|
from django.utils._os import upath
|
|
|
|
|
|
@unittest.skipIf(six.PY2,
|
|
'Python 2 cannot import the project template because '
|
|
'django/conf/project_template doesn\'t have an __init__.py file.')
|
|
class TestStartProjectSettings(TestCase):
|
|
def setUp(self):
|
|
# Ensure settings.py exists
|
|
project_dir = os.path.join(
|
|
os.path.dirname(upath(conf.__file__)),
|
|
'project_template',
|
|
'project_name',
|
|
)
|
|
template_settings_py = os.path.join(project_dir, 'settings.py-tpl')
|
|
test_settings_py = os.path.join(project_dir, 'settings.py')
|
|
shutil.copyfile(template_settings_py, test_settings_py)
|
|
self.addCleanup(os.remove, test_settings_py)
|
|
|
|
def test_middleware_classes_headers(self):
|
|
"""
|
|
Ensure headers sent by the default MIDDLEWARE_CLASSES do not
|
|
inadvertently change. For example, we never want "Vary: Cookie" to
|
|
appear in the list since it prevents the caching of responses.
|
|
"""
|
|
from django.conf.project_template.project_name.settings import MIDDLEWARE_CLASSES
|
|
|
|
with self.settings(
|
|
MIDDLEWARE_CLASSES=MIDDLEWARE_CLASSES,
|
|
ROOT_URLCONF='project_template.urls',
|
|
):
|
|
response = self.client.get('/empty/')
|
|
headers = sorted(response.serialize_headers().split(b'\r\n'))
|
|
self.assertEqual(headers, [
|
|
b'Content-Type: text/html; charset=utf-8',
|
|
b'X-Frame-Options: SAMEORIGIN',
|
|
])
|