Merge pull request #1681 from alphagov/fix-test-db

make sure tests always run in test db
This commit is contained in:
Leo Hemsted
2018-02-22 16:54:57 +00:00
committed by GitHub
3 changed files with 33 additions and 38 deletions

View File

@@ -30,20 +30,13 @@ Create a local environment.sh file containing the following:
``` ```
echo " echo "
export SQLALCHEMY_DATABASE_URI='postgresql://localhost/notification_api'
export SECRET_KEY='dev-notify-secret-key'
export DANGEROUS_SALT='dev-notify-salt'
export NOTIFY_ENVIRONMENT='development' export NOTIFY_ENVIRONMENT='development'
export ADMIN_CLIENT_SECRET='dev-notify-secret-key'
export ADMIN_BASE_URL='http://localhost:6012'
export FROM_NUMBER='development'
export MMG_URL='https://api.mmg.co.uk/json/api.php'
export MMG_API_KEY='MMG_API_KEY' export MMG_API_KEY='MMG_API_KEY'
export LOADTESTING_API_KEY='FIRETEXT_SIMULATION_KEY' export LOADTESTING_API_KEY='FIRETEXT_SIMULATION_KEY'
export FIRETEXT_API_KEY='FIRETEXT_ACTUAL_KEY' export FIRETEXT_API_KEY='FIRETEXT_ACTUAL_KEY'
export STATSD_PREFIX='YOU_OWN_PREFIX'
export NOTIFICATION_QUEUE_PREFIX='YOUR_OWN_PREFIX' export NOTIFICATION_QUEUE_PREFIX='YOUR_OWN_PREFIX'
export REDIS_URL="redis://localhost:6379/0"
export FLASK_APP=application.py export FLASK_APP=application.py
export FLASK_DEBUG=1 export FLASK_DEBUG=1
export WERKZEUG_DEBUG_PIN=off export WERKZEUG_DEBUG_PIN=off

View File

@@ -61,26 +61,23 @@ class TaskNames(object):
class Config(object): class Config(object):
# URL of admin app # URL of admin app
ADMIN_BASE_URL = os.environ['ADMIN_BASE_URL'] ADMIN_BASE_URL = os.getenv('ADMIN_BASE_URL', 'http://localhost:6012')
# URL of api app (on AWS this is the internal api endpoint) # URL of api app (on AWS this is the internal api endpoint)
API_HOST_NAME = os.getenv('API_HOST_NAME') API_HOST_NAME = os.getenv('API_HOST_NAME')
# admin app api key # admin app api key
ADMIN_CLIENT_SECRET = os.environ['ADMIN_CLIENT_SECRET'] ADMIN_CLIENT_SECRET = os.getenv('ADMIN_CLIENT_SECRET')
# encyption secret/salt # encyption secret/salt
SECRET_KEY = os.environ['SECRET_KEY'] SECRET_KEY = os.getenv('SECRET_KEY')
DANGEROUS_SALT = os.environ['DANGEROUS_SALT'] DANGEROUS_SALT = os.getenv('DANGEROUS_SALT')
# DB conection string # DB conection string
SQLALCHEMY_DATABASE_URI = os.environ['SQLALCHEMY_DATABASE_URI'] SQLALCHEMY_DATABASE_URI = os.getenv('SQLALCHEMY_DATABASE_URI')
# MMG API Url
MMG_URL = os.environ['MMG_URL']
# MMG API Key # MMG API Key
MMG_API_KEY = os.environ['MMG_API_KEY'] MMG_API_KEY = os.getenv('MMG_API_KEY')
# Firetext API Key # Firetext API Key
FIRETEXT_API_KEY = os.getenv("FIRETEXT_API_KEY") FIRETEXT_API_KEY = os.getenv("FIRETEXT_API_KEY")
@@ -315,21 +312,38 @@ class Config(object):
LETTER_PROCESSING_DEADLINE = time(17, 30) LETTER_PROCESSING_DEADLINE = time(17, 30)
MMG_URL = "https://api.mmg.co.uk/json/api.php"
AWS_REGION = 'eu-west-1'
###################### ######################
# Config overrides ### # Config overrides ###
###################### ######################
class Development(Config): class Development(Config):
NOTIFY_LOG_PATH = 'application.log' DEBUG = True
SQLALCHEMY_ECHO = False SQLALCHEMY_ECHO = False
NOTIFY_EMAIL_DOMAIN = 'notify.tools'
CSV_UPLOAD_BUCKET_NAME = 'development-notifications-csv-upload' CSV_UPLOAD_BUCKET_NAME = 'development-notifications-csv-upload'
LETTERS_PDF_BUCKET_NAME = 'development-letters-pdf' LETTERS_PDF_BUCKET_NAME = 'development-letters-pdf'
DVLA_RESPONSE_BUCKET_NAME = 'notify.tools-ftp' DVLA_RESPONSE_BUCKET_NAME = 'notify.tools-ftp'
ADMIN_CLIENT_SECRET = 'dev-notify-secret-key'
SECRET_KEY = 'dev-notify-secret-key'
DANGEROUS_SALT = 'dev-notify-salt'
NOTIFY_ENVIRONMENT = 'development' NOTIFY_ENVIRONMENT = 'development'
NOTIFY_LOG_PATH = 'application.log'
NOTIFICATION_QUEUE_PREFIX = 'development' NOTIFICATION_QUEUE_PREFIX = 'development'
DEBUG = True NOTIFY_EMAIL_DOMAIN = "notify.tools"
SQLALCHEMY_DATABASE_URI = 'postgresql://localhost/notification_api'
REDIS_URL = 'redis://localhost:6379/0'
STATSD_ENABLED = False
STATSD_HOST = "localhost"
STATSD_PORT = 1000
STATSD_PREFIX = "stats-prefix"
for queue in QueueNames.all_queues(): for queue in QueueNames.all_queues():
Config.CELERY_QUEUES.append( Config.CELERY_QUEUES.append(
@@ -340,18 +354,18 @@ class Development(Config):
API_RATE_LIMIT_ENABLED = True API_RATE_LIMIT_ENABLED = True
class Test(Config): class Test(Development):
NOTIFY_EMAIL_DOMAIN = 'test.notify.com' NOTIFY_EMAIL_DOMAIN = 'test.notify.com'
FROM_NUMBER = 'testing' FROM_NUMBER = 'testing'
NOTIFY_ENVIRONMENT = 'test' NOTIFY_ENVIRONMENT = 'test'
DEBUG = True
TESTING = True TESTING = True
CSV_UPLOAD_BUCKET_NAME = 'test-notifications-csv-upload' CSV_UPLOAD_BUCKET_NAME = 'test-notifications-csv-upload'
LETTERS_PDF_BUCKET_NAME = 'test-letters-pdf' LETTERS_PDF_BUCKET_NAME = 'test-letters-pdf'
DVLA_RESPONSE_BUCKET_NAME = 'test.notify.com-ftp' DVLA_RESPONSE_BUCKET_NAME = 'test.notify.com-ftp'
STATSD_ENABLED = True
STATSD_HOST = "localhost" # this is overriden in jenkins and on cloudfoundry
STATSD_PORT = 1000 SQLALCHEMY_DATABASE_URI = os.getenv('SQLALCHEMY_DATABASE_URI', 'postgresql://localhost/test_notification_api')
BROKER_URL = 'you-forgot-to-mock-celery-in-your-tests://' BROKER_URL = 'you-forgot-to-mock-celery-in-your-tests://'

View File

@@ -1,20 +1,8 @@
[pytest] [pytest]
testpaths = tests testpaths = tests
env = env =
D:SQLALCHEMY_DATABASE_URI=postgresql://@localhost/test_notification_api
SECRET_KEY=secret-key
DANGEROUS_SALT=dangerous-salt
NOTIFY_ENVIRONMENT=test NOTIFY_ENVIRONMENT=test
ADMIN_CLIENT_SECRET=dev-notify-secret-key
ADMIN_BASE_URL=http://localhost:6012
FROM_NUMBER=from_number
MMG_URL=https://api.mmg.co.uk/json/api.php
MMG_API_KEY=mmg-secret-key MMG_API_KEY=mmg-secret-key
LOADTESTING_API_KEY=loadtesting LOADTESTING_API_KEY=loadtesting
FIRETEXT_API_KEY=Firetext FIRETEXT_API_KEY=Firetext
STATSD_PREFIX=stats-prefix
NOTIFICATION_QUEUE_PREFIX=testing NOTIFICATION_QUEUE_PREFIX=testing
REDIS_URL=redis://localhost:6379/0
FLASK_APP=application.py
FLASK_DEBUG=1
WERKZEUG_DEBUG_PIN=off