added functional_tests to installed apps in core.settings (but only when debug is true); created management dir to contain new django cmds & listed in .dockerignore; created management.create_session cmd; recreated container.db.sqlite3; tweaked test_server setup in functional_tests.base; added test_server failsafe to magic link login testing in .test_login
This commit is contained in:
@@ -1 +1,2 @@
|
|||||||
src/db.sqlite3
|
src/db.sqlite3
|
||||||
|
src/functional_tests/management
|
||||||
|
|||||||
Binary file not shown.
@@ -78,8 +78,9 @@
|
|||||||
env:
|
env:
|
||||||
DJANGO_DEBUG_FALSE: "1"
|
DJANGO_DEBUG_FALSE: "1"
|
||||||
DJANGO_SECRET_KEY: "{{ secret_key.content | b64decode }}"
|
DJANGO_SECRET_KEY: "{{ secret_key.content | b64decode }}"
|
||||||
DJANGO_ALLOWED_HOST: "staging.earthmanrpg.me,www.earthmanrpg.me,dashboard.earthmanrpg.me,earthmanrpg.me,104.131.184.0,localhost"
|
DJANGO_ALLOWED_HOST: "localhost,staging.earthmanrpg.me,www.earthmanrpg.me,dashboard.earthmanrpg.me,earthmanrpg.me,104.131.184.0"
|
||||||
DJANGO_DB_PATH: "/home/nonroot/db.sqlite3"
|
DJANGO_DB_PATH: "/home/nonroot/db.sqlite3"
|
||||||
|
EMAIL_HOST_PASSWORD: "{{ lookup('env', 'EMAIL_HOST_PASSWORD') }}"
|
||||||
ports:
|
ports:
|
||||||
80:8888 # container port 80 (standard http port) maps to server port 8888 (arbitrary internal port)
|
80:8888 # container port 80 (standard http port) maps to server port 8888 (arbitrary internal port)
|
||||||
|
|
||||||
|
|||||||
@@ -51,6 +51,9 @@ INSTALLED_APPS = [
|
|||||||
# Depend apps
|
# Depend apps
|
||||||
]
|
]
|
||||||
|
|
||||||
|
if 'DJANGO_DEBUG_FALSE' not in os.environ:
|
||||||
|
INSTALLED_APPS += ['functional_tests']
|
||||||
|
|
||||||
MIDDLEWARE = [
|
MIDDLEWARE = [
|
||||||
'django.middleware.security.SecurityMiddleware',
|
'django.middleware.security.SecurityMiddleware',
|
||||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||||
@@ -149,7 +152,7 @@ LOGGING = {
|
|||||||
|
|
||||||
# Email Settings
|
# Email Settings
|
||||||
EMAIL_HOST = "smtp.mailgun.org"
|
EMAIL_HOST = "smtp.mailgun.org"
|
||||||
EMAIL_HOST_USER = os.environ["EMAIL_HOST_USER"]
|
EMAIL_HOST_USER = os.environ.get("EMAIL_HOST_USER") # switch back to .environ[] when collectstatic moved outside docker build process
|
||||||
EMAIL_HOST_PASSWORD = os.environ["EMAIL_HOST_PASSWORD"]
|
EMAIL_HOST_PASSWORD = os.environ.get("EMAIL_HOST_PASSWORD") # switch back to .environ[]
|
||||||
EMAIL_PORT = 587
|
EMAIL_PORT = 587
|
||||||
EMAIL_USER_TLS = True
|
EMAIL_USER_TLS = True
|
||||||
|
|||||||
@@ -27,8 +27,9 @@ class FunctionalTest(StaticLiveServerTestCase):
|
|||||||
# Helper methods
|
# Helper methods
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.browser = webdriver.Firefox()
|
self.browser = webdriver.Firefox()
|
||||||
if test_server := os.environ.get('TEST_SERVER'):
|
self.test_server = os.environ.get("TEST_SERVER")
|
||||||
self.live_server_url = 'http://' + test_server
|
if self.test_server:
|
||||||
|
self.live_server_url = 'http://' + self.test_server
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
self.browser.quit()
|
self.browser.quit()
|
||||||
|
|||||||
0
src/functional_tests/management/__init__.py
Normal file
0
src/functional_tests/management/__init__.py
Normal file
23
src/functional_tests/management/commands/create_session.py
Normal file
23
src/functional_tests/management/commands/create_session.py
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
from django.conf import settings
|
||||||
|
from django.contrib.auth import BACKEND_SESSION_KEY, SESSION_KEY, get_user_model
|
||||||
|
from django.contrib.sessions.backends.db import SessionStore
|
||||||
|
from django.core.management.base import BaseCommand
|
||||||
|
|
||||||
|
User = get_user_model()
|
||||||
|
|
||||||
|
|
||||||
|
class Command(BaseCommand):
|
||||||
|
def add_arguments(self, parser):
|
||||||
|
parser.add_argument("email")
|
||||||
|
|
||||||
|
def handle(self, *args, **options):
|
||||||
|
session_key = create_pre_authenticated_session(options["email"])
|
||||||
|
self.stdout.write(session_key)
|
||||||
|
|
||||||
|
def create_pre_authenticated_session(email):
|
||||||
|
user = User.objects.create(email=email)
|
||||||
|
session = SessionStore()
|
||||||
|
session[SESSION_KEY] = user.pk
|
||||||
|
session[BACKEND_SESSION_KEY] = settings.AUTHENTICATION_BACKENDS[0]
|
||||||
|
session.save()
|
||||||
|
return session.session_key
|
||||||
@@ -21,6 +21,9 @@ class LoginTest(FunctionalTest):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if self.test_server:
|
||||||
|
return
|
||||||
|
|
||||||
email = mail.outbox.pop()
|
email = mail.outbox.pop()
|
||||||
self.assertIn(TEST_EMAIL, email.to)
|
self.assertIn(TEST_EMAIL, email.to)
|
||||||
self.assertEqual(email.subject, SUBJECT)
|
self.assertEqual(email.subject, SUBJECT)
|
||||||
|
|||||||
Reference in New Issue
Block a user