From e30e3c2fb7a086bb691b47d6004aefaf35a0521f Mon Sep 17 00:00:00 2001 From: Miroslav Shubernetskiy Date: Mon, 3 Sep 2018 22:55:41 -0400 Subject: [PATCH 1/2] added django debug toolbar to test project --- requirements-dev.txt | 2 ++ test_project/middleware.py | 6 ++++++ test_project/settings.py | 24 ++++++++++++++++++++++++ test_project/urls.py | 10 ++++++++++ 4 files changed, 42 insertions(+) diff --git a/requirements-dev.txt b/requirements-dev.txt index f33f80c..8d791e9 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -2,6 +2,8 @@ alchemy-mock coreapi coverage +django-debug-toolbar +django-debug-toolbar-alchemy django-extensions djangorestframework flake8 diff --git a/test_project/middleware.py b/test_project/middleware.py index 679edc3..9a583b7 100644 --- a/test_project/middleware.py +++ b/test_project/middleware.py @@ -8,6 +8,12 @@ Session = sessionmaker(bind=settings.SQLALCHEMY_ENGINE) +def dbs(): + return { + 'default': settings.SQLALCHEMY_ENGINE, + } + + class SQLAlchemySessionMiddleware(object): def __init__(self, get_response): self.get_response = get_response diff --git a/test_project/settings.py b/test_project/settings.py index 1d3ca99..ef0511a 100644 --- a/test_project/settings.py +++ b/test_project/settings.py @@ -3,6 +3,7 @@ DEBUG = True +INTERNAL_IPS = ['127.0.0.1'] SQLALCHEMY_ENGINE = create_engine('sqlite:///url_filter.sqlite', echo=True) DATABASES = { @@ -20,6 +21,8 @@ 'url_filter', + 'debug_toolbar', + 'debug_toolbar_alchemy', 'django_extensions', 'rest_framework', @@ -33,6 +36,7 @@ MIDDLEWARE = [ 'test_project.middleware.SQLAlchemySessionMiddleware', + 'debug_toolbar.middleware.DebugToolbarMiddleware', ] TEMPLATES = [ @@ -49,3 +53,23 @@ 'url_filter.integrations.drf.DjangoFilterBackend', ], } + +DEBUG_TOOLBAR_PANELS = [ + 'debug_toolbar.panels.versions.VersionsPanel', + 'debug_toolbar.panels.timer.TimerPanel', + 'debug_toolbar.panels.settings.SettingsPanel', + 'debug_toolbar.panels.headers.HeadersPanel', + 'debug_toolbar.panels.request.RequestPanel', + 'debug_toolbar.panels.sql.SQLPanel', + 'debug_toolbar_alchemy.panels.sql.SQLPanel', + 'debug_toolbar.panels.staticfiles.StaticFilesPanel', + 'debug_toolbar.panels.templates.TemplatesPanel', + 'debug_toolbar.panels.cache.CachePanel', + 'debug_toolbar.panels.signals.SignalsPanel', + 'debug_toolbar.panels.logging.LoggingPanel', + 'debug_toolbar.panels.redirects.RedirectsPanel', +] + +DEBUG_TOOLBAR_CONFIG = { + 'ALCHEMY_DB_ALIASES': 'test_project.middleware.dbs', +} diff --git a/test_project/urls.py b/test_project/urls.py index ac15c4d..d128c8a 100644 --- a/test_project/urls.py +++ b/test_project/urls.py @@ -1,6 +1,10 @@ # -*- coding: utf-8 -*- from __future__ import print_function, unicode_literals +import debug_toolbar +from django.conf import settings +from django.conf.urls import url +from django.urls import include from rest_framework.routers import DefaultRouter from test_project.generic import api as g_api @@ -33,3 +37,9 @@ router.register('generic/b', g_api.ModelBViewSet, 'generic|b') urlpatterns = router.urls + + +if settings.DEBUG: + urlpatterns += [ + url(r'^__debug__/', include(debug_toolbar.urls)), + ] From d52f577a2e7fd7b288181bc76ede328d27e6b595 Mon Sep 17 00:00:00 2001 From: Miroslav Shubernetskiy Date: Tue, 4 Sep 2018 14:47:17 -0400 Subject: [PATCH 2/2] adding pg support in test project to test debug toolbar --- Makefile | 5 +++++ test_project/settings.py | 27 +++++++++++++++++++++------ 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 71a29b2..1cae8dd 100644 --- a/Makefile +++ b/Makefile @@ -52,3 +52,8 @@ release: clean ## package and upload a release dist: clean ## build python package ditribution python setup.py sdist bdist_wheel ls -l dist + +syncdb: ## apply all migrations and load fixtures + python manage.py migrate + python manage.py migrate --run-syncdb + python manage.py loaddata one_to_one many_to_one many_to_many diff --git a/test_project/settings.py b/test_project/settings.py index ef0511a..65b189f 100644 --- a/test_project/settings.py +++ b/test_project/settings.py @@ -1,17 +1,32 @@ # Bare ``settings.py`` for running tests for url_filter +import os + from sqlalchemy import create_engine DEBUG = True INTERNAL_IPS = ['127.0.0.1'] -SQLALCHEMY_ENGINE = create_engine('sqlite:///url_filter.sqlite', echo=True) -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': 'url_filter.sqlite' +if os.environ.get('USE_POSTGRES') == 'True': + SQLALCHEMY_ENGINE = create_engine('postgresql://postgres:test@localhost:5432', echo=True) + DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql', + 'NAME': 'postgres', + 'USER': 'postgres', + 'PASSWORD': 'test', + 'HOST': '127.0.0.1', + 'PORT': '5432', + } + } +else: + SQLALCHEMY_ENGINE = create_engine('sqlite:///url_filter.sqlite', echo=True) + DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': 'url_filter.sqlite' + } } -} INSTALLED_APPS = ( 'test_project.generic',