Update requirements and some small code parts

pull/190/head
JensDiemer 2025-04-30 23:16:02 +02:00
rodzic 56a9de57a6
commit caeecd9304
9 zmienionych plików z 791 dodań i 776 usunięć

Wyświetl plik

@ -166,6 +166,8 @@ To make a new release, do this:
[comment]: <> (✂✂✂ auto generated history start ✂✂✂) [comment]: <> (✂✂✂ auto generated history start ✂✂✂)
* [**dev**](https://github.com/jedie/PyInventory/compare/v0.21.0...main)
* 2025-04-30 - Update requirements and some small code parts
* [v0.21.0](https://github.com/jedie/PyInventory/compare/v0.20.1...v0.21.0) * [v0.21.0](https://github.com/jedie/PyInventory/compare/v0.20.1...v0.21.0)
* 2025-03-23 - Bugfix publish: setuptools missing * 2025-03-23 - Bugfix publish: setuptools missing
* 2025-03-23 - Migrate "pip-tools" -> "uv" and remove tox * 2025-03-23 - Migrate "pip-tools" -> "uv" and remove tox
@ -176,6 +178,9 @@ To make a new release, do this:
* 2024-09-05 - Project updates * 2024-09-05 - Project updates
* 2024-01-16 - Use typeguard in tests * 2024-01-16 - Use typeguard in tests
* 2024-01-16 - Update requirements * 2024-01-16 - Update requirements
<details><summary>Expand older history entries ...</summary>
* [v0.19.3](https://github.com/jedie/PyInventory/compare/v0.19.2...v0.19.3) * [v0.19.3](https://github.com/jedie/PyInventory/compare/v0.19.2...v0.19.3)
* 2023-11-01 - Auto generate README history * 2023-11-01 - Auto generate README history
* 2023-11-01 - Update requirements * 2023-11-01 - Update requirements
@ -184,9 +189,6 @@ To make a new release, do this:
* 2023-10-08 - Use playwrigth manage command from manage-django-project * 2023-10-08 - Use playwrigth manage command from manage-django-project
* 2023-09-24 - Update test snapshot files * 2023-09-24 - Update test snapshot files
* 2023-09-24 - Add playwright CLI wrapper command * 2023-09-24 - Add playwright CLI wrapper command
<details><summary>Expand older history entries ...</summary>
* [v0.19.2](https://github.com/jedie/PyInventory/compare/v0.19.1...v0.19.2) * [v0.19.2](https://github.com/jedie/PyInventory/compare/v0.19.1...v0.19.2)
* 2023-08-17 - Bugfix packaging by adding "requests" as normal dependencies * 2023-08-17 - Bugfix packaging by adding "requests" as normal dependencies
* 2023-08-17 - Bugfix packageing by adding "requests" as normal dependencies * 2023-08-17 - Bugfix packageing by adding "requests" as normal dependencies

Wyświetl plik

@ -8,7 +8,7 @@ logger = logging.getLogger(__name__)
def get_filename(filename, request): def get_filename(filename, request):
random_string = get_random_string() random_string = get_random_string(length=12)
filename = clean_filename(filename) filename = clean_filename(filename)
filename = f'{random_string}/{filename}' filename = f'{random_string}/{filename}'
logger.info(f'Upload filename: {filename!r}') logger.info(f'Upload filename: {filename!r}')

Wyświetl plik

@ -148,7 +148,6 @@ LANGUAGE_CODE = 'en'
LANGUAGES = [('ca', _('Catalan')), ('de', _('German')), ('en', _('English')), ('es', _('Spanish'))] LANGUAGES = [('ca', _('Catalan')), ('de', _('German')), ('en', _('English')), ('es', _('Spanish'))]
USE_I18N = True USE_I18N = True
USE_L10N = True
TIME_ZONE = 'Europe/Paris' TIME_ZONE = 'Europe/Paris'
USE_TZ = True USE_TZ = True

Wyświetl plik

@ -12,11 +12,11 @@ class AdminAnonymousTests(HtmlAssertionMixin, TestCase):
""" """
def test_login_en(self): def test_login_en(self):
response = self.client.get('/admin/', secure=True, HTTP_ACCEPT_LANGUAGE='en') response = self.client.get('/admin/', secure=True, headers={"accept-language": 'en'})
self.assertRedirects(response, expected_url='/admin/login/?next=/admin/', fetch_redirect_response=False) self.assertRedirects(response, expected_url='/admin/login/?next=/admin/', fetch_redirect_response=False)
def test_login_de(self): def test_login_de(self):
response = self.client.get('/admin/', secure=True, HTTP_ACCEPT_LANGUAGE='de') response = self.client.get('/admin/', secure=True, headers={"accept-language": 'de'})
self.assertRedirects(response, expected_url='/admin/login/?next=/admin/', fetch_redirect_response=False) self.assertRedirects(response, expected_url='/admin/login/?next=/admin/', fetch_redirect_response=False)
@ -33,7 +33,7 @@ class AdminLoggedinTests(HtmlAssertionMixin, TestCase):
def test_staff_admin_index(self): def test_staff_admin_index(self):
self.client.force_login(self.staffuser) self.client.force_login(self.staffuser)
response = self.client.get("/admin/", secure=True, HTTP_ACCEPT_LANGUAGE="en") response = self.client.get("/admin/", secure=True, headers={"accept-language": "en"})
self.assert_html_parts( self.assert_html_parts(
response, response,
parts=( parts=(
@ -47,7 +47,7 @@ class AdminLoggedinTests(HtmlAssertionMixin, TestCase):
def test_superuser_admin_index(self): def test_superuser_admin_index(self):
self.client.force_login(self.superuser) self.client.force_login(self.superuser)
response = self.client.get("/admin/", secure=True, HTTP_ACCEPT_LANGUAGE="en") response = self.client.get("/admin/", secure=True, headers={"accept-language": "en"})
self.assert_html_parts( self.assert_html_parts(
response, response,
parts=( parts=(

Wyświetl plik

@ -44,7 +44,7 @@ ITEM_FORM_DEFAULTS = tuple(ITEM_FORM_DEFAULTS.items())
class AdminAnonymousTests(HtmlAssertionMixin, TestCase): class AdminAnonymousTests(HtmlAssertionMixin, TestCase):
def test_login(self): def test_login(self):
# HTTP -> HTTPS redirect: # HTTP -> HTTPS redirect:
response = self.client.get('/admin/', HTTP_ACCEPT_LANGUAGE='en') response = self.client.get('/admin/', headers={"accept-language": 'en'})
self.assertRedirects( self.assertRedirects(
response, response,
expected_url='https://testserver/admin/', expected_url='https://testserver/admin/',
@ -52,14 +52,16 @@ class AdminAnonymousTests(HtmlAssertionMixin, TestCase):
fetch_redirect_response=False, fetch_redirect_response=False,
) )
response = self.client.get(path='/admin/inventory/itemmodel/add/', secure=True, HTTP_ACCEPT_LANGUAGE='en') response = self.client.get(
path='/admin/inventory/itemmodel/add/', secure=True, headers={"accept-language": 'en'}
)
self.assertRedirects( self.assertRedirects(
response, expected_url='/admin/login/?next=/admin/inventory/itemmodel/add/', fetch_redirect_response=False response, expected_url='/admin/login/?next=/admin/inventory/itemmodel/add/', fetch_redirect_response=False
) )
with mock.patch.object( with mock.patch.object(
CsrfTokenNode, 'render', return_value='MockedCsrfTokenNode' CsrfTokenNode, 'render', return_value='MockedCsrfTokenNode'
), MockInventoryVersionString(): ), MockInventoryVersionString():
response = self.client.get(path='/admin/login/', secure=True, HTTP_ACCEPT_LANGUAGE='en') response = self.client.get(path='/admin/login/', secure=True, headers={"accept-language": 'en'})
self.assert_html_parts( self.assert_html_parts(
response, response,
parts=( parts=(

Wyświetl plik

@ -16,7 +16,7 @@ from inventory_project.tests.mocks import MockInventoryVersionString
class AdminAnonymousTests(TestCase): class AdminAnonymousTests(TestCase):
def test_login(self): def test_login(self):
response = self.client.get('/admin/inventory/memomodel/add/', secure=True, HTTP_ACCEPT_LANGUAGE='en') response = self.client.get('/admin/inventory/memomodel/add/', secure=True, headers={"accept-language": 'en'})
self.assertRedirects( self.assertRedirects(
response, response,
expected_url='/admin/login/?next=/admin/inventory/memomodel/add/', expected_url='/admin/login/?next=/admin/inventory/memomodel/add/',

Wyświetl plik

@ -1,7 +1,6 @@
from django.conf import settings from django.conf import settings
from django.conf.urls import include
from django.contrib import admin from django.contrib import admin
from django.urls import path, re_path from django.urls import include, path
from django.views.generic import RedirectView from django.views.generic import RedirectView
@ -9,7 +8,7 @@ admin.autodiscover()
urlpatterns = [ # Don't use i18n_patterns() here urlpatterns = [ # Don't use i18n_patterns() here
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
re_path(r'^$', RedirectView.as_view(pattern_name='admin:index')), path('', RedirectView.as_view(pattern_name='admin:index')),
path('tinymce/', include('tinymce.urls')), # TODO: check permissions? path('tinymce/', include('tinymce.urls')), # TODO: check permissions?
path(settings.MEDIA_URL.lstrip('/'), include('django_tools.serve_media_app.urls')), path(settings.MEDIA_URL.lstrip('/'), include('django_tools.serve_media_app.urls')),
] ]
@ -18,4 +17,4 @@ urlpatterns = [ # Don't use i18n_patterns() here
if settings.DEBUG: if settings.DEBUG:
import debug_toolbar import debug_toolbar
urlpatterns = [re_path(r'^__debug__/', include(debug_toolbar.urls))] + urlpatterns urlpatterns = [path('__debug__/', include(debug_toolbar.urls))] + urlpatterns

Wyświetl plik

@ -10,7 +10,8 @@ authors = [
keywords=['inventory','django'] keywords=['inventory','django']
requires-python = ">=3.11" requires-python = ">=3.11"
dependencies = [ dependencies = [
"django", # https://docs.djangoproject.com # Stay with Django v5.1.x until https://github.com/radiac/django-tagulous/issues/187 is fixed
"django!=5.2.0", # https://docs.djangoproject.com
"colorlog", # https://github.com/borntyping/python-colorlog "colorlog", # https://github.com/borntyping/python-colorlog
"gunicorn", # https://github.com/benoimyproject.wsgitc/gunicorn "gunicorn", # https://github.com/benoimyproject.wsgitc/gunicorn

1528
uv.lock

Plik diff jest za duży Load Diff