diff --git a/incorporealcms/pages.py b/incorporealcms/pages.py index 0716f4e..9de25c9 100644 --- a/incorporealcms/pages.py +++ b/incorporealcms/pages.py @@ -4,9 +4,10 @@ import logging import os import re -from flask import Blueprint, Markup, abort +from flask import Blueprint, abort from flask import current_app as app from flask import redirect, request, send_from_directory +from markupsafe import Markup from werkzeug.security import safe_join from incorporealcms.lib import get_meta_str, init_md, render diff --git a/requirements/requirements-dev.txt b/requirements/requirements-dev.txt index bb3661f..9e84618 100644 --- a/requirements/requirements-dev.txt +++ b/requirements/requirements-dev.txt @@ -1,39 +1,37 @@ # -# This file is autogenerated by pip-compile with Python 3.10 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # pip-compile --output-file=requirements/requirements-dev.txt requirements/requirements-dev.in # -attrs==22.2.0 - # via pytest -bandit==1.7.4 +bandit==1.7.5 # via -r requirements/requirements-dev.in -build==0.9.0 +blinker==1.6.3 + # via flask +build==1.0.3 # via pip-tools -certifi==2022.12.7 +certifi==2023.7.22 # via requests -charset-normalizer==2.1.1 +charset-normalizer==3.3.0 # via requests -click==8.1.3 +click==8.1.7 # via # flask # pip-tools # safety -coverage[toml]==7.0.1 +coverage[toml]==7.3.2 # via pytest-cov -distlib==0.3.6 +distlib==0.3.7 # via virtualenv -dlint==0.13.0 +dlint==0.14.1 # via -r requirements/requirements-dev.in -dparse==0.6.2 +dparse==0.6.3 # via safety -exceptiongroup==1.1.0 - # via pytest -filelock==3.9.0 +filelock==3.12.4 # via # tox # virtualenv -flake8==5.0.4 +flake8==6.1.0 # via # -r requirements/requirements-dev.in # dlint @@ -46,42 +44,46 @@ flake8-blind-except==0.2.1 # via -r requirements/requirements-dev.in flake8-builtins==2.1.0 # via -r requirements/requirements-dev.in -flake8-docstrings==1.6.0 +flake8-docstrings==1.7.0 # via -r requirements/requirements-dev.in -flake8-executable==2.1.2 +flake8-executable==2.1.3 # via -r requirements/requirements-dev.in flake8-fixme==1.1.1 # via -r requirements/requirements-dev.in -flake8-isort==6.0.0 +flake8-isort==6.1.0 # via -r requirements/requirements-dev.in flake8-logging-format==0.9.0 # via -r requirements/requirements-dev.in flake8-mutable==1.2.0 # via -r requirements/requirements-dev.in -flask==2.2.2 +flask==3.0.0 # via -r requirements/requirements.in gitdb==4.0.10 # via gitpython -gitpython==3.1.30 +gitpython==3.1.37 # via bandit idna==3.4 # via requests -iniconfig==1.1.1 +iniconfig==2.0.0 # via pytest -isort==5.11.4 +isort==5.12.0 # via flake8-isort itsdangerous==2.1.2 # via flask jinja2==3.1.2 # via flask -markdown==3.4.1 +markdown==3.5 # via -r requirements/requirements.in -markupsafe==2.1.1 +markdown-it-py==3.0.0 + # via rich +markupsafe==2.1.3 # via # jinja2 # werkzeug mccabe==0.7.0 # via flake8 +mdurl==0.1.2 + # via markdown-it-py packaging==21.3 # via # build @@ -89,80 +91,75 @@ packaging==21.3 # pytest # safety # tox -pbr==5.11.0 +pbr==5.11.1 # via stevedore -pep517==0.13.0 - # via build -pip-tools==6.12.1 +pip-tools==7.3.0 # via -r requirements/requirements-dev.in -platformdirs==2.6.2 +platformdirs==3.11.0 # via virtualenv -pluggy==1.0.0 +pluggy==1.3.0 # via # pytest # tox py==1.11.0 # via tox -pycodestyle==2.9.1 +pycodestyle==2.11.0 # via flake8 -pydocstyle==6.1.1 +pydocstyle==6.3.0 # via flake8-docstrings pydot==1.4.2 # via -r requirements/requirements-dev.in -pyflakes==2.5.0 +pyflakes==3.1.0 # via flake8 -pyparsing==3.0.9 +pygments==2.16.1 + # via rich +pyparsing==3.1.1 # via # packaging # pydot -pytest==7.2.0 +pyproject-hooks==1.0.0 + # via build +pytest==7.4.2 # via # -r requirements/requirements-dev.in # pytest-cov -pytest-cov==4.0.0 +pytest-cov==4.1.0 # via -r requirements/requirements-dev.in -pyyaml==6.0 +pyyaml==6.0.1 # via bandit -requests==2.28.1 +requests==2.31.0 # via safety -ruamel-yaml==0.17.21 +rich==13.6.0 + # via bandit +ruamel-yaml==0.17.35 # via safety -ruamel-yaml-clib==0.2.7 +ruamel-yaml-clib==0.2.8 # via ruamel-yaml safety==2.3.5 # via -r requirements/requirements-dev.in six==1.16.0 # via tox -smmap==5.0.0 +smmap==5.0.1 # via gitdb snowballstemmer==2.2.0 # via pydocstyle -stevedore==4.1.1 +stevedore==5.1.0 # via bandit -toml==0.10.2 - # via dparse -tomli==2.0.1 - # via - # build - # coverage - # pep517 - # pytest - # tox tox==3.28.0 # via # -r requirements/requirements-dev.in # tox-wheel tox-wheel==1.0.0 # via -r requirements/requirements-dev.in -urllib3==1.26.13 +urllib3==2.0.6 # via requests -versioneer==0.28 +versioneer==0.29 # via -r requirements/requirements-dev.in -virtualenv==20.17.1 +virtualenv==20.24.5 # via tox -werkzeug==2.2.2 +werkzeug==3.0.0 # via flask -wheel==0.38.4 +wheel==0.41.2 # via # pip-tools # tox-wheel diff --git a/requirements/requirements.txt b/requirements/requirements.txt index fcf72c5..4cbae32 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -1,22 +1,24 @@ # -# This file is autogenerated by pip-compile with python 3.10 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.11 +# by the following command: # # pip-compile --output-file=requirements/requirements.txt requirements/requirements.in # -click==8.1.3 +blinker==1.6.3 # via flask -flask==2.2.2 +click==8.1.7 + # via flask +flask==3.0.0 # via -r requirements/requirements.in itsdangerous==2.1.2 # via flask jinja2==3.1.2 # via flask -markdown==3.4.1 +markdown==3.5 # via -r requirements/requirements.in -markupsafe==2.1.1 +markupsafe==2.1.3 # via # jinja2 # werkzeug -werkzeug==2.2.2 +werkzeug==3.0.0 # via flask diff --git a/tests/functional_tests.py b/tests/functional_tests.py index 9cbb751..3874ad3 100644 --- a/tests/functional_tests.py +++ b/tests/functional_tests.py @@ -184,18 +184,18 @@ def test_that_dir_request_does_not_redirect(client): def test_setting_selected_style_includes_cookie(client): """Test that a request with style=foo sets the cookie and renders appropriately.""" response = client.get('/') - style_cookie = next((cookie for cookie in client.cookie_jar if cookie.name == 'user-style'), None) + style_cookie = client.get_cookie('user-style') assert style_cookie is None response = client.get('/?style=light') - style_cookie = next((cookie for cookie in client.cookie_jar if cookie.name == 'user-style'), None) + style_cookie = client.get_cookie('user-style') assert response.status_code == 200 assert b'/static/css/light.css' in response.data assert b'/static/css/dark.css' not in response.data assert style_cookie.value == 'light' response = client.get('/?style=dark') - style_cookie = next((cookie for cookie in client.cookie_jar if cookie.name == 'user-style'), None) + style_cookie = client.get_cookie('user-style') assert response.status_code == 200 assert b'/static/css/dark.css' in response.data assert b'/static/css/light.css' not in response.data