Projet

Général

Profil

0001-ease-customization-of-VAR_DIR-and-ETC_DIR-settings-v.patch

Emmanuel Cazenave, 08 février 2018 11:55

Télécharger (2,92 ko)

Voir les différences:

Subject: [PATCH] ease customization of VAR_DIR and ETC_DIR settings variables
 (#21723)

 debian/debian_config_common.py     | 11 +++++++----
 tests/test_debian_config_common.py | 24 ++++++++++++++++++++++++
 tox.ini                            |  1 +
 3 files changed, 32 insertions(+), 4 deletions(-)
 create mode 100644 tests/test_debian_config_common.py
debian/debian_config_common.py
16 16

  
17 17
DEBUG = False
18 18

  
19
SECRET_KEY = file('/etc/%s/secret' % PROJECT_NAME).read()
19
ETC_BASE_DIR = locals().get('ETC_BASE_DIR', '/etc')
20
ETC_DIR = os.path.join(ETC_BASE_DIR, PROJECT_NAME)
21

  
22
VAR_BASE_DIR = locals().get('VAR_BASE_DIR', '/var/lib')
23
VAR_DIR = os.path.join(VAR_BASE_DIR, PROJECT_NAME)
24

  
25
SECRET_KEY = file(os.path.join(ETC_DIR, 'secret')).read()
20 26

  
21 27
ADMINS = (
22 28
        ('Tous', 'root@localhost'),
......
149 155
        SENTRY_DSN = os.environ['SENTRY_DSN']
150 156
        SENTRY_TRANSPORT = RequestsHTTPTransport
151 157

  
152
ETC_DIR = '/etc/%s' % PROJECT_NAME
153
VAR_DIR = '/var/lib/%s' % PROJECT_NAME
154 158

  
155 159
# collecstatic destination
156 160
STATIC_ROOT = os.path.join(VAR_DIR, 'collectstatic')
157

  
158 161
# template settings
159 162
if 'TEMPLATE_DEBUG' in globals():
160 163
    # compatibility with django<1.10
tests/test_debian_config_common.py
1
import __builtin__ as builtin
2
from mock import mock_open, patch
3
import os
4

  
5

  
6
TEMPLATE_DEBUG = True
7
PROJECT_NAME = 'hobotest'
8
INSTALLED_APPS = tuple()
9

  
10

  
11
def test_defaults_settings():
12
    with patch.object(builtin, 'file', mock_open(read_data='xxx')):
13
        execfile(os.environ['DEBIAN_CONFIG_COMMON'])
14
    assert locals()['ETC_DIR'] == '/etc/%s' % PROJECT_NAME
15
    assert locals()['VAR_DIR'] == '/var/lib/%s' % PROJECT_NAME
16

  
17

  
18
def test_base_dir_settings(tmpdir):
19
    ETC_BASE_DIR = tmpdir.strpath
20
    VAR_BASE_DIR = tmpdir.strpath
21
    tmpdir.join(PROJECT_NAME).join('secret').ensure()
22
    execfile(os.environ['DEBIAN_CONFIG_COMMON'])
23
    assert locals()['ETC_DIR'] == tmpdir.join(PROJECT_NAME).strpath
24
    assert locals()['VAR_DIR'] == tmpdir.join(PROJECT_NAME).strpath
tox.ini
13 13
setenv =
14 14
	hobo: DJANGO_SETTINGS_MODULE=hobo.settings
15 15
	hobo: HOBO_SETTINGS_FILE=tests/settings.py
16
        hobo: DEBIAN_CONFIG_COMMON=debian/debian_config_common.py
16 17
	multitenant: PYTHONPATH=tests_multitenant
17 18
	multitenant: DJANGO_SETTINGS_MODULE=settings
18 19
	multipublik: PYTHONPATH=tests_multipublik
19
-