Merge pull request #113 from jedie/req_update_20220816

Update requirements
pull/114/head
Jens Diemer 2022-08-19 09:15:54 +02:00 zatwierdzone przez GitHub
commit 8c4d3c8d83
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
10 zmienionych plików z 844 dodań i 263 usunięć

924
poetry.lock wygenerowano

Plik diff jest za duży Load Diff

Wyświetl plik

@ -1,27 +1,5 @@
import os from django_tools.management.commands.run_testserver import Command as RunServerCommand
from django.core.management import call_command
from django.core.management.commands.runserver import Command as RunServerCommand
class Command(RunServerCommand): class Command(RunServerCommand):
help = "Run Django dev. Server" pass
def verbose_call(self, command, **kwargs):
self.stdout.write("\n")
self.stdout.write("_" * 79)
self.stdout.write(self.style.NOTICE(f" *** call '{command}' command with {kwargs}:"))
self.stdout.write("\n")
call_command(command, **kwargs)
def handle(self, *args, **options):
"""
INFO: The django reloader will call this multiple times!
We check RUN_MAIN, that will be set in django.utils.autoreload
So we can skip the first migrate run.
"""
if os.environ.get("RUN_MAIN"):
self.verbose_call("migrate", run_syncdb=True, interactive=False, verbosity=1)
self.verbose_call("showmigrations", verbosity=1)
self.verbose_call("runserver", **options)

Wyświetl plik

@ -13,9 +13,6 @@ from inventory_project.settings.base import * # noqa
DEBUG = True DEBUG = True
TEMPLATE_DEBUG = True TEMPLATE_DEBUG = True
# Serve static/media files for local development:
SERVE_FILES = True
# Disable caches: # Disable caches:
CACHES = {'default': {'BACKEND': 'django.core.cache.backends.dummy.DummyCache'}} CACHES = {'default': {'BACKEND': 'django.core.cache.backends.dummy.DummyCache'}}
@ -53,11 +50,11 @@ DEFAULT_USERPASS = 'test'
DEFAULT_USEREMAIL = 'nobody@local.intranet' DEFAULT_USEREMAIL = 'nobody@local.intranet'
MIDDLEWARE = MIDDLEWARE.copy() MIDDLEWARE = MIDDLEWARE.copy()
MIDDLEWARE.append('inventory_project.tests.middleware.AlwaysLoggedInAsSuperUser') MIDDLEWARE.append('django_tools.middlewares.local_auto_login.AlwaysLoggedInAsSuperUserMiddleware')
# _____________________________________________________________________________ # _____________________________________________________________________________
# Django-Debug-Toolbar # Django-Debug-Toolbar
INSTALLED_APPS.copy()
INSTALLED_APPS += ['debug_toolbar'] INSTALLED_APPS += ['debug_toolbar']
MIDDLEWARE.append('debug_toolbar.middleware.DebugToolbarMiddleware') MIDDLEWARE.append('debug_toolbar.middleware.DebugToolbarMiddleware')

Wyświetl plik

@ -1,63 +0,0 @@
import os
import sys
from django.conf import settings
from django.contrib import messages
from django.contrib.auth import authenticate, login
from django.contrib.auth.models import User
def _print_and_message(request, msg, level=messages.WARNING):
print(f' *** {msg} ***', file=sys.stderr)
messages.add_message(request, level, msg)
class AlwaysLoggedInAsSuperUser:
"""
Auto login all users as default superuser.
Default user will be created, if not exist.
Disable it by deactivate the default user.
"""
def __init__(self, get_response):
assert 'RUN_MAIN' in os.environ, 'Only allowed running by Django dev. server !'
self.get_response = get_response
def __call__(self, request):
self._auto_login(request)
response = self.get_response(request)
return response
def _auto_login(self, request):
if request.user.is_authenticated:
return
try:
user = User.objects.get(username=settings.DEFAULT_USERNAME)
except User.DoesNotExist:
_print_and_message(request, f'Create test django user: {settings.DEFAULT_USERNAME!r}')
User.objects.create_superuser(
username=settings.DEFAULT_USERNAME,
email=settings.DEFAULT_USEREMAIL,
password=settings.DEFAULT_USERPASS
)
else:
if not user.is_active:
_print_and_message(request, 'Default User was deactivated!', level=messages.ERROR)
return
user.set_password(settings.DEFAULT_USERPASS)
user.save()
_print_and_message(
request,
f'Autologin applied. Your logged in as {settings.DEFAULT_USERNAME!r}'
)
user = authenticate(
request=request,
username=settings.DEFAULT_USERNAME,
password=settings.DEFAULT_USERPASS
)
login(request, user)

Wyświetl plik

@ -42,7 +42,7 @@
</a> </a>
</li> </li>
<li> <li>
<a href="?create_dt__day=1&create_dt__month=1&create_dt__year=2000"> <a href="?create_dt__day=1&amp;create_dt__month=1&amp;create_dt__year=2000">
January 1 January 1
</a> </a>
</li> </li>

Wyświetl plik

@ -160,13 +160,13 @@
--------- ---------
</option> </option>
</select> </select>
<a class="related-widget-wrapper-link change-related" data-href-template="/admin/inventory/itemmodel/__fk__/change/?_to_field=id&_popup=1" id="change_id_parent" title="Change selected Item"> <a class="related-widget-wrapper-link change-related" data-href-template="/admin/inventory/itemmodel/__fk__/change/?_to_field=id&amp;_popup=1" id="change_id_parent" title="Change selected Item">
<img alt="Change" src="/static/admin/img/icon-changelink.svg"/> <img alt="Change" src="/static/admin/img/icon-changelink.svg"/>
</a> </a>
<a class="related-widget-wrapper-link add-related" href="/admin/inventory/itemmodel/add/?_to_field=id&_popup=1" id="add_id_parent" title="Add another Item"> <a class="related-widget-wrapper-link add-related" href="/admin/inventory/itemmodel/add/?_to_field=id&amp;_popup=1" id="add_id_parent" title="Add another Item">
<img alt="Add" src="/static/admin/img/icon-addlink.svg"/> <img alt="Add" src="/static/admin/img/icon-addlink.svg"/>
</a> </a>
<a class="related-widget-wrapper-link delete-related" data-href-template="/admin/inventory/itemmodel/__fk__/delete/?_to_field=id&_popup=1" id="delete_id_parent" title="Delete selected Item"> <a class="related-widget-wrapper-link delete-related" data-href-template="/admin/inventory/itemmodel/__fk__/delete/?_to_field=id&amp;_popup=1" id="delete_id_parent" title="Delete selected Item">
<img alt="Delete" src="/static/admin/img/icon-deletelink.svg"/> <img alt="Delete" src="/static/admin/img/icon-deletelink.svg"/>
</a> </a>
</div> </div>
@ -186,13 +186,13 @@
--------- ---------
</option> </option>
</select> </select>
<a class="related-widget-wrapper-link change-related" data-href-template="/admin/inventory/locationmodel/__fk__/change/?_to_field=id&_popup=1" id="change_id_location" title="Change selected Location"> <a class="related-widget-wrapper-link change-related" data-href-template="/admin/inventory/locationmodel/__fk__/change/?_to_field=id&amp;_popup=1" id="change_id_location" title="Change selected Location">
<img alt="Change" src="/static/admin/img/icon-changelink.svg"/> <img alt="Change" src="/static/admin/img/icon-changelink.svg"/>
</a> </a>
<a class="related-widget-wrapper-link add-related" href="/admin/inventory/locationmodel/add/?_to_field=id&_popup=1" id="add_id_location" title="Add another Location"> <a class="related-widget-wrapper-link add-related" href="/admin/inventory/locationmodel/add/?_to_field=id&amp;_popup=1" id="add_id_location" title="Add another Location">
<img alt="Add" src="/static/admin/img/icon-addlink.svg"/> <img alt="Add" src="/static/admin/img/icon-addlink.svg"/>
</a> </a>
<a class="related-widget-wrapper-link delete-related" data-href-template="/admin/inventory/locationmodel/__fk__/delete/?_to_field=id&_popup=1" id="delete_id_location" title="Delete selected Location"> <a class="related-widget-wrapper-link delete-related" data-href-template="/admin/inventory/locationmodel/__fk__/delete/?_to_field=id&amp;_popup=1" id="delete_id_location" title="Delete selected Location">
<img alt="Delete" src="/static/admin/img/icon-deletelink.svg"/> <img alt="Delete" src="/static/admin/img/icon-deletelink.svg"/>
</a> </a>
</div> </div>

Wyświetl plik

@ -180,7 +180,7 @@
<div id="content-main"> <div id="content-main">
<ul class="object-tools"> <ul class="object-tools">
<li> <li>
<a class="historylink" href="/admin/inventory/itemmodel/<removed-UUID>/history/"> <a class="historylink" href="/admin/inventory/itemmodel/&lt;removed-UUID&gt;/history/">
History History
</a> </a>
</li> </li>
@ -366,17 +366,17 @@
<option selected="" value=""> <option selected="" value="">
--------- ---------
</option> </option>
<option value="<removed-UUID>"> <option value="&lt;removed-UUID&gt;">
name name
</option> </option>
</select> </select>
<a class="related-widget-wrapper-link change-related" data-href-template="/admin/inventory/itemmodel/__fk__/change/?_to_field=id&_popup=1" id="change_id_parent" title="Change selected Item"> <a class="related-widget-wrapper-link change-related" data-href-template="/admin/inventory/itemmodel/__fk__/change/?_to_field=id&amp;_popup=1" id="change_id_parent" title="Change selected Item">
<img alt="Change" src="/static/admin/img/icon-changelink.svg"/> <img alt="Change" src="/static/admin/img/icon-changelink.svg"/>
</a> </a>
<a class="related-widget-wrapper-link add-related" href="/admin/inventory/itemmodel/add/?_to_field=id&_popup=1" id="add_id_parent" title="Add another Item"> <a class="related-widget-wrapper-link add-related" href="/admin/inventory/itemmodel/add/?_to_field=id&amp;_popup=1" id="add_id_parent" title="Add another Item">
<img alt="Add" src="/static/admin/img/icon-addlink.svg"/> <img alt="Add" src="/static/admin/img/icon-addlink.svg"/>
</a> </a>
<a class="related-widget-wrapper-link delete-related" data-href-template="/admin/inventory/itemmodel/__fk__/delete/?_to_field=id&_popup=1" id="delete_id_parent" title="Delete selected Item"> <a class="related-widget-wrapper-link delete-related" data-href-template="/admin/inventory/itemmodel/__fk__/delete/?_to_field=id&amp;_popup=1" id="delete_id_parent" title="Delete selected Item">
<img alt="Delete" src="/static/admin/img/icon-deletelink.svg"/> <img alt="Delete" src="/static/admin/img/icon-deletelink.svg"/>
</a> </a>
</div> </div>
@ -396,13 +396,13 @@
--------- ---------
</option> </option>
</select> </select>
<a class="related-widget-wrapper-link change-related" data-href-template="/admin/inventory/locationmodel/__fk__/change/?_to_field=id&_popup=1" id="change_id_location" title="Change selected Location"> <a class="related-widget-wrapper-link change-related" data-href-template="/admin/inventory/locationmodel/__fk__/change/?_to_field=id&amp;_popup=1" id="change_id_location" title="Change selected Location">
<img alt="Change" src="/static/admin/img/icon-changelink.svg"/> <img alt="Change" src="/static/admin/img/icon-changelink.svg"/>
</a> </a>
<a class="related-widget-wrapper-link add-related" href="/admin/inventory/locationmodel/add/?_to_field=id&_popup=1" id="add_id_location" title="Add another Location"> <a class="related-widget-wrapper-link add-related" href="/admin/inventory/locationmodel/add/?_to_field=id&amp;_popup=1" id="add_id_location" title="Add another Location">
<img alt="Add" src="/static/admin/img/icon-addlink.svg"/> <img alt="Add" src="/static/admin/img/icon-addlink.svg"/>
</a> </a>
<a class="related-widget-wrapper-link delete-related" data-href-template="/admin/inventory/locationmodel/__fk__/delete/?_to_field=id&_popup=1" id="delete_id_location" title="Delete selected Location"> <a class="related-widget-wrapper-link delete-related" data-href-template="/admin/inventory/locationmodel/__fk__/delete/?_to_field=id&amp;_popup=1" id="delete_id_location" title="Delete selected Location">
<img alt="Delete" src="/static/admin/img/icon-deletelink.svg"/> <img alt="Delete" src="/static/admin/img/icon-deletelink.svg"/>
</a> </a>
</div> </div>
@ -551,7 +551,7 @@
</td> </td>
<td class="original"> <td class="original">
<input id="id_itemimagemodel_set-__prefix__-id" name="itemimagemodel_set-__prefix__-id" type="hidden"/> <input id="id_itemimagemodel_set-__prefix__-id" name="itemimagemodel_set-__prefix__-id" type="hidden"/>
<input id="id_itemimagemodel_set-__prefix__-item" name="itemimagemodel_set-__prefix__-item" type="hidden" value="<removed-UUID>"/> <input id="id_itemimagemodel_set-__prefix__-item" name="itemimagemodel_set-__prefix__-item" type="hidden" value="&lt;removed-UUID&gt;"/>
<input id="id_itemimagemodel_set-__prefix__-position" name="itemimagemodel_set-__prefix__-position" type="hidden" value="0"/> <input id="id_itemimagemodel_set-__prefix__-position" name="itemimagemodel_set-__prefix__-position" type="hidden" value="0"/>
</td> </td>
<td class="field-preview"> <td class="field-preview">
@ -629,7 +629,7 @@
</td> </td>
<td class="original"> <td class="original">
<input id="id_itemfilemodel_set-__prefix__-id" name="itemfilemodel_set-__prefix__-id" type="hidden"/> <input id="id_itemfilemodel_set-__prefix__-id" name="itemfilemodel_set-__prefix__-id" type="hidden"/>
<input id="id_itemfilemodel_set-__prefix__-item" name="itemfilemodel_set-__prefix__-item" type="hidden" value="<removed-UUID>"/> <input id="id_itemfilemodel_set-__prefix__-item" name="itemfilemodel_set-__prefix__-item" type="hidden" value="&lt;removed-UUID&gt;"/>
<input id="id_itemfilemodel_set-__prefix__-position" name="itemfilemodel_set-__prefix__-position" type="hidden" value="0"/> <input id="id_itemfilemodel_set-__prefix__-position" name="itemfilemodel_set-__prefix__-position" type="hidden" value="0"/>
</td> </td>
<td class="field-file"> <td class="field-file">
@ -699,7 +699,7 @@
</td> </td>
<td class="original"> <td class="original">
<input id="id_itemlinkmodel_set-__prefix__-id" name="itemlinkmodel_set-__prefix__-id" type="hidden"/> <input id="id_itemlinkmodel_set-__prefix__-id" name="itemlinkmodel_set-__prefix__-id" type="hidden"/>
<input id="id_itemlinkmodel_set-__prefix__-item" name="itemlinkmodel_set-__prefix__-item" type="hidden" value="<removed-UUID>"/> <input id="id_itemlinkmodel_set-__prefix__-item" name="itemlinkmodel_set-__prefix__-item" type="hidden" value="&lt;removed-UUID&gt;"/>
<input id="id_itemlinkmodel_set-__prefix__-position" name="itemlinkmodel_set-__prefix__-position" type="hidden" value="0"/> <input id="id_itemlinkmodel_set-__prefix__-position" name="itemlinkmodel_set-__prefix__-position" type="hidden" value="0"/>
</td> </td>
<td class="field-tags"> <td class="field-tags">
@ -733,7 +733,7 @@
<div class="submit-row"> <div class="submit-row">
<input class="default" name="_save" type="submit" value="Save"/> <input class="default" name="_save" type="submit" value="Save"/>
<p class="deletelink-box"> <p class="deletelink-box">
<a class="deletelink" href="/admin/inventory/itemmodel/<removed-UUID>/delete/"> <a class="deletelink" href="/admin/inventory/itemmodel/&lt;removed-UUID&gt;/delete/">
Delete Delete
</a> </a>
</p> </p>

Wyświetl plik

@ -23,16 +23,25 @@ def call_devshell_commands(*args):
class DevShellTestCase(TestCase): class DevShellTestCase(TestCase):
def test_run_testserver(self): def test_run_testserver(self):
output = call_devshell_commands('run_testserver', '--help') output = call_devshell_commands('run_testserver', '--help')
assert 'usage: manage.py run_testserver' in output assert 'Setup test project and run django developer server' in output
assert 'Run Django dev. Server' in output
assert 'Optional port number, or ipaddr:port' in output
def test_pass_wrong_addrport(self): # From own run_testserver command:
output = call_devshell_commands('run_testserver', 'not-ip:no-port') assert '--nomakemigrations' in output
assert "call 'runserver' command with" in output assert '--nomigrate' in output
assert (
'CommandError: "not-ip:no-port" is not a valid port number or address:port pair.' # From django.core.management.commands.runserver command:
) in output assert '[addrport]' in output
def test_run_testserver_invalid_addr(self):
output = call_devshell_commands(
'run_testserver',
'--nomigrate',
'--nomakemigrations',
'invalid:addr',
)
assert 'Call "runserver"' in output
assert 'is not a valid port number or address' in output
def test_manage_command(self): def test_manage_command(self):
output = call_devshell_commands('manage', 'diffsettings') output = call_devshell_commands('manage', 'diffsettings')

Wyświetl plik

@ -6,6 +6,7 @@ from pathlib import Path
from creole.setup_utils import update_rst_readme from creole.setup_utils import update_rst_readme
from django.conf import settings from django.conf import settings
from django.core import checks from django.core import checks
from django.core.cache import cache
from django.test import TestCase from django.test import TestCase
from django_tools.unittest_utils.project_setup import check_editor_config from django_tools.unittest_utils.project_setup import check_editor_config
@ -115,6 +116,21 @@ class ProjectSettingsTestCase(TestCase):
print('=' * 100) print('=' * 100)
raise AssertionError('There are check issues!') raise AssertionError('There are check issues!')
def test_cache(self):
# django cache should work in tests, because some tests "depends" on it
cache_key = 'a-cache-key'
assert cache.get(cache_key) is None
cache.set(cache_key, 'the cache content', timeout=1)
assert cache.get(cache_key) == 'the cache content'
cache.delete(cache_key)
assert cache.get(cache_key) is None
def test_settings(self):
assert settings.SETTINGS_MODULE == 'inventory_project.settings.tests'
middlewares = [entry.rsplit('.', 1)[-1] for entry in settings.MIDDLEWARE]
assert 'AlwaysLoggedInAsSuperUserMiddleware' not in middlewares
assert 'DebugToolbarMiddleware' not in middlewares
def test_check_editor_config(): def test_check_editor_config():
check_editor_config(package_root=PACKAGE_ROOT) check_editor_config(package_root=PACKAGE_ROOT)

Wyświetl plik

@ -1,5 +1,5 @@
from django.conf import settings from django.conf import settings
from django.conf.urls import include, re_path, static from django.conf.urls import include, re_path
from django.contrib import admin from django.contrib import admin
from django.urls import path from django.urls import path
from django.views.generic import RedirectView from django.views.generic import RedirectView
@ -17,10 +17,6 @@ urlpatterns = [ # Don't use i18n_patterns() here
] ]
if settings.SERVE_FILES:
urlpatterns += static.static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
if settings.DEBUG: if settings.DEBUG:
import debug_toolbar import debug_toolbar
urlpatterns = [re_path(r'^__debug__/', include(debug_toolbar.urls))] + urlpatterns urlpatterns = [re_path(r'^__debug__/', include(debug_toolbar.urls))] + urlpatterns