Configuring Postgres for application and test

This commit is contained in:
Apoclyps
2019-07-24 22:20:35 +01:00
parent 55641f1fdd
commit 2bc64f690a
10 changed files with 140 additions and 4 deletions

View File

@@ -46,7 +46,6 @@ docker-compose build
docker-compose up docker-compose up
``` ```
## Running Tests ## Running Tests
To run the entire test suite for CBWebReader, execute the following command: To run the entire test suite for CBWebReader, execute the following command:

View File

123
cbreader/settings/test.py Normal file
View File

@@ -0,0 +1,123 @@
"""
Django settings for cbreader project.
Generated by 'django-admin startproject' using Django 1.8.2.
For more information on this file, see
https://docs.djangoproject.com/en/1.8/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.8/ref/settings/
"""
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
import dj_database_url
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '=3tf-@u1t7x4%$yr++59+8tspl4ao&r3&!bb6l(t&$#6@bfkwg'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = os.environ.get('DJANGO_DEBUG', True)
ALLOWED_HOSTS = os.environ.get("DJANGO_ALLOWED_HOSTS", "localhost").split(",")
# Application definition
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'snowpenguin.django.recaptcha2',
'comic',
'comic_auth',
)
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'cbreader.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['templates'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'cbreader.wsgi.application'
# Database
# https://docs.djangoproject.com/en/1.8/ref/settings/#databases
DATABASE_URL = os.getenv("TEST_DATABASE_URL")
if DATABASE_URL:
DATABASES = {"default": dj_database_url.config(conn_max_age=500)}
else:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
# Internationalization
# https://docs.djangoproject.com/en/1.8/topics/i18n/
LANGUAGE_CODE = 'en-ie'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.8/howto/static-files/
STATIC_URL = '/static/'
LOGIN_REDIRECT_URL = '/comic/'
LOGIN_URL = '/login/'
UNRAR_TOOL = os.getenv("UNRAR_TOOL", None)
CBREADER_USE_RECAPTCHA = False
RECAPTCHA_PRIVATE_KEY = ''
RECAPTCHA_PUBLIC_KEY = ''
COMIC_DIR = "/media/comics"

View File

@@ -11,6 +11,6 @@ import os
from django.core.wsgi import get_wsgi_application from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "cbreader.settings") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "cbreader.settings.base")
application = get_wsgi_application() application = get_wsgi_application()

3
database/.dockerignore Normal file
View File

@@ -0,0 +1,3 @@
*
!docker-entrypoint-initdb.d

8
database/Dockerfile Normal file
View File

@@ -0,0 +1,8 @@
FROM postgres:11.4-alpine
COPY . .
ENTRYPOINT ["docker-entrypoint.sh"]
EXPOSE 5432
CMD ["postgres"]

View File

@@ -0,0 +1,2 @@
CREATE DATABASE cbwebreader;
CREATE DATABASE cbwebreader_test;

View File

@@ -6,7 +6,8 @@ services:
build: . build: .
environment: environment:
- DATABASE_URL=postgres://admin:password@database:5432/cbwebreader - DATABASE_URL=postgres://admin:password@database:5432/cbwebreader
- DJANGO_SETTINGS_MODULE=cbreader.settings - TEST_DATABASE_URL=postgres://admin:password@database:5432/cbwebreader_test
- DJANGO_SETTINGS_MODULE=cbreader.settings.base
links: links:
- database - database
depends_on: depends_on:

View File

@@ -3,7 +3,7 @@ import os
import sys import sys
if __name__ == "__main__": if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "cbreader.settings") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "cbreader.settings.base")
from django.core.management import execute_from_command_line from django.core.management import execute_from_command_line