Merge pull request #1081 from alphagov/ip-fix

don't store non-strings to os.environ
This commit is contained in:
Leo Hemsted
2017-07-11 16:10:17 +01:00
committed by GitHub
4 changed files with 11 additions and 4 deletions

View File

@@ -43,7 +43,7 @@ def extract_notify_config(notify_config):
os.environ['SECRET_KEY'] = notify_config['credentials']['secret_key']
os.environ['DANGEROUS_SALT'] = notify_config['credentials']['dangerous_salt']
os.environ['PERFORMANCE_PLATFORM_TOKEN'] = notify_config['credentials'].get('performance_platform_token', '')
os.environ['SMS_INBOUND_WHITELIST'] = notify_config['credentials']['allow_ip_inbound_sms']
os.environ['SMS_INBOUND_WHITELIST'] = json.dumps(notify_config['credentials']['allow_ip_inbound_sms'])
def extract_notify_aws_config(aws_config):

View File

@@ -1,5 +1,6 @@
from datetime import timedelta
import os
import json
from celery.schedules import crontab
from kombu import Exchange, Queue
@@ -262,7 +263,7 @@ class Config(object):
FREE_SMS_TIER_FRAGMENT_COUNT = 250000
SMS_INBOUND_WHITELIST = os.environ.get('SMS_INBOUND_WHITELIST', [])
SMS_INBOUND_WHITELIST = json.loads(os.environ.get('SMS_INBOUND_WHITELIST', '[]'))
######################

View File

@@ -204,4 +204,4 @@ def test_redis_config():
def test_sms_inbound_config():
extract_cloudfoundry_config()
assert os.environ['SMS_INBOUND_WHITELIST'] == ['111.111.111.111', '100.100.100.100']
assert os.environ['SMS_INBOUND_WHITELIST'] == json.dumps(['111.111.111.111', '100.100.100.100'])

View File

@@ -90,7 +90,13 @@ def os_environ():
"""
# for use whenever you expect code to edit environment variables
old_env = os.environ.copy()
os.environ = {}
class EnvironDict(dict):
def __setitem__(self, key, value):
assert type(value) == str
super().__setitem__(key, value)
os.environ = EnvironDict()
yield
os.environ = old_env