Projet

Général

Profil

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

Emmanuel Cazenave, 08 février 2018 13:55

Télécharger (3,48 ko)

Voir les différences:

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

 debian/debian_config_common.py              | 10 +++++++---
 tests/test_debian_config_common.py          | 22 ++++++++++++++++++++++
 tests/test_debian_config_common_defaults.py | 15 +++++++++++++++
 tox.ini                                     |  1 +
 4 files changed, 45 insertions(+), 3 deletions(-)
 create mode 100644 tests/test_debian_config_common.py
 create mode 100644 tests/test_debian_config_common_defaults.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 = globals().get('ETC_BASE_DIR', '/etc')
20
ETC_DIR = os.path.join(ETC_BASE_DIR, PROJECT_NAME)
21

  
22
VAR_BASE_DIR = globals().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')
tests/test_debian_config_common.py
1
import os
2
import tempfile
3

  
4
import py.path
5

  
6

  
7
TEMPLATE_DEBUG = True
8
PROJECT_NAME = 'hobotest'
9
INSTALLED_APPS = tuple()
10
ETC_BASE_DIR = tempfile.mkdtemp()
11
VAR_BASE_DIR = tempfile.mkdtemp()
12

  
13

  
14
def test_base_dir_settings():
15
    etc_base_dir = py.path.local(ETC_BASE_DIR)
16
    var_base_dir = py.path.local(VAR_BASE_DIR)
17
    etc_base_dir.join(PROJECT_NAME).join('secret').ensure()
18
    execfile(os.environ['DEBIAN_CONFIG_COMMON'])
19
    assert locals()['ETC_DIR'] == etc_base_dir.join(PROJECT_NAME).strpath
20
    assert locals()['VAR_DIR'] == var_base_dir.join(PROJECT_NAME).strpath
21
    etc_base_dir.remove()
22
    var_base_dir.remove()
tests/test_debian_config_common_defaults.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
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
-