Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-Flask-Security-Too for 
openSUSE:Factory checked in at 2022-03-06 18:15:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Flask-Security-Too (Old)
 and      /work/SRC/openSUSE:Factory/.python-Flask-Security-Too.new.1958 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-Flask-Security-Too"

Sun Mar  6 18:15:46 2022 rev:8 rq:959706 version:4.1.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-Flask-Security-Too/python-Flask-Security-Too.changes
      2022-02-28 19:43:53.049948385 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-Flask-Security-Too.new.1958/python-Flask-Security-Too.changes
    2022-03-06 18:16:00.923827953 +0100
@@ -1,0 +2,19 @@
+Sat Mar  5 18:01:11 UTC 2022 - Arun Persaud <a...@gmx.de>
+
+- specfile:
+  * updated minimum required version for packages listed in setup.py
+  * request pytest >=6.2.5 (for pytest.FixtureRequest)
+
+- update to version 4.1.3:
+  * Fixes
+    + (:issue:`581`) Fix bug when attempting to disable
+      register_blueprint. (halali)
+    + (:pr:`539`) Fix example documentation re: generating localized
+      messages. (kazuhei2)
+    + (:pr:`546`) Make roles joinedload compatible with SQLAlchemy
+      2.0. (keats)
+    + (:pr:`586`) Ship py.typed as part of package.
+    + (:issue:`580`) Improve documentation around use of bleach and
+      include in common install extra.
+
+-------------------------------------------------------------------

Old:
----
  Flask-Security-Too-4.1.2.tar.gz

New:
----
  Flask-Security-Too-4.1.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-Flask-Security-Too.spec ++++++
--- /var/tmp/diff_new_pack.hQpWbN/_old  2022-03-06 18:16:01.495828031 +0100
+++ /var/tmp/diff_new_pack.hQpWbN/_new  2022-03-06 18:16:01.499828031 +0100
@@ -19,7 +19,7 @@
 %define skip_python2 1
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-Flask-Security-Too
-Version:        4.1.2
+Version:        4.1.3
 Release:        0
 Summary:        Security for Flask apps
 License:        MIT
@@ -28,13 +28,13 @@
 Patch0:         no-mongodb.patch
 Patch1:         use-pyqrcodeng.patch
 BuildRequires:  %{python_module Babel >= 1.3}
-BuildRequires:  %{python_module Flask >= 1.0.2}
+BuildRequires:  %{python_module Flask >= 1.1.1}
 BuildRequires:  %{python_module Flask-Babel}
 BuildRequires:  %{python_module Flask-Login >= 0.4.1}
 BuildRequires:  %{python_module Flask-Mail >= 0.9.1}
 BuildRequires:  %{python_module Flask-Principal >= 0.4.0}
 BuildRequires:  %{python_module Flask-SQLAlchemy >= 2.3}
-BuildRequires:  %{python_module Flask-WTF >= 0.14.2}
+BuildRequires:  %{python_module Flask-WTF >= 0.14.3}
 BuildRequires:  %{python_module PyQRCode >= 1.2}
 BuildRequires:  %{python_module SQLAlchemy >= 1.2.6}
 BuildRequires:  %{python_module Werkzeug >= 0.14.1}
@@ -44,29 +44,29 @@
 BuildRequires:  %{python_module blinker >= 1.4}
 BuildRequires:  %{python_module cachetools >= 3.1.0}
 BuildRequires:  %{python_module cryptography >= 2.1.4}
-BuildRequires:  %{python_module email_validator >= 1.0.5}
+BuildRequires:  %{python_module email_validator >= 1.1.1}
 BuildRequires:  %{python_module itsdangerous >= 1.1.0}
 BuildRequires:  %{python_module mock >= 1.3.0}
-BuildRequires:  %{python_module passlib >= 1.7.1}
+BuildRequires:  %{python_module passlib >= 1.7.2}
 BuildRequires:  %{python_module peewee >= 3.7.1}
 BuildRequires:  %{python_module phonenumbers >= 8.11.1}
-BuildRequires:  %{python_module pytest}
+BuildRequires:  %{python_module pytest >= 6.2.5}
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  %{python_module zxcvbn >= 4.4.28}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
-Requires:       python-Flask >= 1.0.2
+Requires:       python-Flask >= 1.1.1
 Requires:       python-Flask-Babel
 Requires:       python-Flask-Login >= 0.4.1
 Requires:       python-Flask-Principal >= 0.4.0
-Requires:       python-Flask-WTF >= 0.14.2
+Requires:       python-Flask-WTF >= 0.14.3
 Requires:       python-Werkzeug >= 0.14.1
 Requires:       python-bcrypt >= 3.1.4
 Requires:       python-blinker >= 1.4
 Requires:       python-cryptography >= 2.1.4
-Requires:       python-email_validator >= 1.0.5
+Requires:       python-email_validator >= 1.1.1
 Requires:       python-itsdangerous >= 1.1.0
-Requires:       python-passlib >= 1.7.1
+Requires:       python-passlib >= 1.7.2
 Recommends:     python-PyQRCode >= 1.2
 Recommends:     python-SQLAlchemy >= 1.2.6
 Recommends:     python-zxcvbn >= 4.4.28

++++++ Flask-Security-Too-4.1.2.tar.gz -> Flask-Security-Too-4.1.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Security-Too-4.1.2/CHANGES.rst 
new/Flask-Security-Too-4.1.3/CHANGES.rst
--- old/Flask-Security-Too-4.1.2/CHANGES.rst    2021-09-23 00:54:50.000000000 
+0200
+++ new/Flask-Security-Too-4.1.3/CHANGES.rst    2022-03-02 17:58:26.000000000 
+0100
@@ -3,16 +3,30 @@
 
 Here you can see the full list of changes between each Flask-Security release.
 
+Version 4.1.3
+-------------
+
+Released March 2, 2022
+
+Fixes
++++++
+- (:issue:`581`) Fix bug when attempting to disable register_blueprint. 
(halali)
+- (:pr:`539`) Fix example documentation re: generating localized messages. 
(kazuhei2)
+- (:pr:`546`) Make roles joinedload compatible with SQLAlchemy 2.0. (keats)
+- (:pr:`586`) Ship py.typed as part of package.
+- (:issue:`580`) Improve documentation around use of bleach and include in 
common install extra.
+
+
 Version 4.1.2
 -------------
 
 Released September 22, 2021
 
 Fixes
------
--(:issue:`526`) default_reauthn_handler doesn't honor SECURITY_URL_PREFIX
--(:pr:`528`) Improve German translations (sr-verde)
--(:pr:`527`) Fix two-factor sample code (djpnewton)
++++++
+- (:issue:`526`) default_reauthn_handler doesn't honor SECURITY_URL_PREFIX
+- (:pr:`528`) Improve German translations (sr-verde)
+- (:pr:`527`) Fix two-factor sample code (djpnewton)
 
 Version 4.1.1
 --------------
@@ -20,7 +34,7 @@
 Released September 10, 2021
 
 Fixes
------
++++++
 - (:issue:`518`) Fix corner case where Security object was being reused in 
tests.
 - (:issue:`512`) If USERNAME_ENABLE is set, change LoginForm field from 
EmailField
   to StringField. Also - dynamically add fields to Login and Registration forms
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Flask-Security-Too-4.1.2/Flask_Security_Too.egg-info/PKG-INFO 
new/Flask-Security-Too-4.1.3/Flask_Security_Too.egg-info/PKG-INFO
--- old/Flask-Security-Too-4.1.2/Flask_Security_Too.egg-info/PKG-INFO   
2021-09-23 00:55:32.000000000 +0200
+++ new/Flask-Security-Too-4.1.3/Flask_Security_Too.egg-info/PKG-INFO   
2022-03-02 17:59:40.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: Flask-Security-Too
-Version: 4.1.2
+Version: 4.1.3
 Summary: Simple security for Flask apps.
 Home-page: https://github.com/Flask-Middleware/flask-security
 Author: Matt Wright & Chris Wagner
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Flask-Security-Too-4.1.2/Flask_Security_Too.egg-info/SOURCES.txt 
new/Flask-Security-Too-4.1.3/Flask_Security_Too.egg-info/SOURCES.txt
--- old/Flask-Security-Too-4.1.2/Flask_Security_Too.egg-info/SOURCES.txt        
2021-09-23 00:55:32.000000000 +0200
+++ new/Flask-Security-Too-4.1.3/Flask_Security_Too.egg-info/SOURCES.txt        
2022-03-02 17:59:41.000000000 +0100
@@ -53,6 +53,7 @@
 flask_security/passwordless.py
 flask_security/phone_util.py
 flask_security/proxies.py
+flask_security/py.typed
 flask_security/quart_compat.py
 flask_security/recoverable.py
 flask_security/registerable.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Flask-Security-Too-4.1.2/Flask_Security_Too.egg-info/requires.txt 
new/Flask-Security-Too-4.1.3/Flask_Security_Too.egg-info/requires.txt
--- old/Flask-Security-Too-4.1.2/Flask_Security_Too.egg-info/requires.txt       
2021-09-23 00:55:32.000000000 +0200
+++ new/Flask-Security-Too-4.1.3/Flask_Security_Too.egg-info/requires.txt       
2022-03-02 17:59:40.000000000 +0100
@@ -14,6 +14,7 @@
 [common]
 bcrypt>=3.1.5
 flask_mail>=0.9.1
+bleach>=3.3.1
 
 [fsqla]
 flask_sqlalchemy>=2.4.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Security-Too-4.1.2/MANIFEST.in 
new/Flask-Security-Too-4.1.3/MANIFEST.in
--- old/Flask-Security-Too-4.1.2/MANIFEST.in    2021-09-23 00:54:50.000000000 
+0200
+++ new/Flask-Security-Too-4.1.3/MANIFEST.in    2022-03-02 17:58:26.000000000 
+0100
@@ -8,6 +8,7 @@
 include pytest.ini
 include tox.ini
 include requirements/*.txt
+include flask_security/py.typed
 graft docs
 graft flask_security/templates
 graft flask_security/translations
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Security-Too-4.1.2/PKG-INFO 
new/Flask-Security-Too-4.1.3/PKG-INFO
--- old/Flask-Security-Too-4.1.2/PKG-INFO       2021-09-23 00:55:32.832971000 
+0200
+++ new/Flask-Security-Too-4.1.3/PKG-INFO       2022-03-02 17:59:41.054738300 
+0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: Flask-Security-Too
-Version: 4.1.2
+Version: 4.1.3
 Summary: Simple security for Flask apps.
 Home-page: https://github.com/Flask-Middleware/flask-security
 Author: Matt Wright & Chris Wagner
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Security-Too-4.1.2/docs/conf.py 
new/Flask-Security-Too-4.1.3/docs/conf.py
--- old/Flask-Security-Too-4.1.2/docs/conf.py   2021-09-23 00:54:50.000000000 
+0200
+++ new/Flask-Security-Too-4.1.3/docs/conf.py   2022-03-02 17:58:26.000000000 
+0100
@@ -57,7 +57,7 @@
 # built documents.
 #
 # The short X.Y version.
-version = "4.1.2"
+version = "4.1.3"
 # The full version, including alpha/beta/rc tags.
 release = version
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Security-Too-4.1.2/docs/configuration.rst 
new/Flask-Security-Too-4.1.3/docs/configuration.rst
--- old/Flask-Security-Too-4.1.2/docs/configuration.rst 2021-09-23 
00:54:50.000000000 +0200
+++ new/Flask-Security-Too-4.1.3/docs/configuration.rst 2022-03-02 
17:58:26.000000000 +0100
@@ -731,7 +731,8 @@
 
     Validation and normalization is encapsulated in :class:`.UsernameUtil`.
     Note that the default validation restricts username input to be unicode
-    letters and numbers.
+    letters and numbers. It also uses ``bleach`` to scrub any risky input. Be
+    sure your application requirements includes ``bleach``.
 
     Default: ``False``
 
@@ -763,7 +764,7 @@
 
 .. py:data:: SECURITY_USERNAME_NORMALIZE_FORM
 
-    Usernames can be unicode normalization is performed using the Python 
unicodedata.normalize() method.
+    Usernames, by default, are normalized using the Python 
unicodedata.normalize() method.
 
     Default: ``"NFKD"``
 
@@ -1090,6 +1091,9 @@
 Unified Signin
 --------------
 
+    Unified sign in provides a generalized sign in endpoint that takes an 
`identity`
+    and a `passcode`.
+
     .. versionadded:: 3.4.0
 
 .. py:data:: SECURITY_UNIFIED_SIGNIN
@@ -1406,8 +1410,8 @@
 * ``SECURITY_MSG_US_SPECIFY_IDENTITY``
 * ``SECURITY_MSG_USE_CODE``
 * ``SECURITY_MSG_USER_DOES_NOT_EXIST``
-* ``SECURITY_USERNAME_INVALID_LENGTH``
-* ``SECURITY_USERNAME_ILLEGAL_CHARACTERS``
-* ``SECURITY_USERNAME_DISALLOWED_CHARACTERS``
-* ``SECURITY_USERNAME_NOT_PROVIDED``
-* ``SECURITY_USERNAME_ALREADY_ASSOCIATED``
+* ``SECURITY_MSG_USERNAME_INVALID_LENGTH``
+* ``SECURITY_MSG_USERNAME_ILLEGAL_CHARACTERS``
+* ``SECURITY_MSG_USERNAME_DISALLOWED_CHARACTERS``
+* ``SECURITY_MSG_USERNAME_NOT_PROVIDED``
+* ``SECURITY_MSG_USERNAME_ALREADY_ASSOCIATED``
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Security-Too-4.1.2/docs/customizing.rst 
new/Flask-Security-Too-4.1.3/docs/customizing.rst
--- old/Flask-Security-Too-4.1.2/docs/customizing.rst   2021-09-23 
00:54:50.000000000 +0200
+++ new/Flask-Security-Too-4.1.3/docs/customizing.rst   2022-03-02 
17:58:26.000000000 +0100
@@ -182,7 +182,7 @@
 
 Then compile it with::
 
-    pybabel compile -d translations/ -i 
translations/fr_FR/LC_MESSAGES/flask_security.po -l fr_FR
+    pybabel compile -d translations/ -i 
translations/fr_FR/LC_MESSAGES/flask_security.po -l fr_FR -D flask_security
 
 Finally add your translations directory to your configuration::
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Security-Too-4.1.2/docs/index.rst 
new/Flask-Security-Too-4.1.3/docs/index.rst
--- old/Flask-Security-Too-4.1.2/docs/index.rst 2021-09-23 00:54:50.000000000 
+0200
+++ new/Flask-Security-Too-4.1.3/docs/index.rst 2022-03-02 17:58:26.000000000 
+0100
@@ -45,7 +45,7 @@
 1. `Flask-SQLAlchemy <https://pypi.python.org/pypi/flask-sqlalchemy/>`_
 2. `Flask-MongoEngine <https://pypi.python.org/pypi/flask-mongoengine/>`_
 3. `Peewee Flask utils 
<https://docs.peewee-orm.com/en/latest/peewee/playhouse.html#flask-utils>`_
-4. `PonyORM <https://pypi.python.org/pypi/pony/>`_
+4. `PonyORM <https://pypi.python.org/pypi/pony/>`_ - NOTE: not currently 
supported.
 5. `SQLAlchemy sessions 
<https://docs.sqlalchemy.org/en/14/orm/session_basics.html>`_
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Security-Too-4.1.2/docs/models.rst 
new/Flask-Security-Too-4.1.3/docs/models.rst
--- old/Flask-Security-Too-4.1.2/docs/models.rst        2021-09-23 
00:54:50.000000000 +0200
+++ new/Flask-Security-Too-4.1.3/docs/models.rst        2022-03-02 
17:58:26.000000000 +0100
@@ -15,7 +15,7 @@
 contain ALL the fields and tables required for all features. They also contain
 various `best practice` fields - such as update and create times. These mixins 
can
 be easily extended to add any sort of custom fields and can be found in the
-`models` module (today there is just one for using Flask-SqlAlchemy).
+`models` module (today there is just one for using Flask-SQLAlchemy).
 
 The provided models are versioned since they represent actual DB models, and 
any
 changes require a schema migration (and perhaps a data migration). Applications
@@ -33,7 +33,7 @@
 * ``email`` (for most features - unique, non-nullable)
 * ``password`` (non-nullable)
 * ``active`` (boolean, non-nullable)
-* ``fs_uniquifier`` (unique, non-nullable)
+* ``fs_uniquifier`` (string, 64 bytes, unique, non-nullable)
 
 
 **Role**
@@ -78,13 +78,13 @@
 configuration value to `True`, your `User` model will require the following
 additional fields:
 
-* ``tf_totp_secret`` (string)
+* ``tf_totp_secret`` (string, 255 bytes, nullable)
 * ``tf_primary_method`` (string)
 
 If you include 'sms' in `SECURITY_TWO_FACTOR_ENABLED_METHODS`, your `User` 
model
 will require the following additional field:
 
-* ``tf_phone_number`` (string)
+* ``tf_phone_number`` (string, 255 bytes, nullable)
 
 Unified Sign In
 ^^^^^^^^^^^^^^^
@@ -105,12 +105,19 @@
 If you want authentication tokens to not be invalidated when the user changes 
their
 password add the following to your `User` model:
 
-* ``fs_token_uniquifier`` (unique, non-nullable)
+* ``fs_token_uniquifier`` (string, 64 bytes, unique, non-nullable)
+
+Username
+~~~~~~~~~
+If you set :py:data:`SECURITY_USERNAME_ENABLE` to `True`, then your `User` 
model
+requires the following additional field:
+
+* ``username`` (string, 64 bytes, unique, nullable)
 
 Permissions
 ^^^^^^^^^^^
 If you want to protect endpoints with permissions, and assign permissions to 
roles
-that are then assigned to users the Role model requires:
+that are then assigned to users, the ``Role`` model requires:
 
 * ``permissions`` (UnicodeText)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Security-Too-4.1.2/docs/quickstart.rst 
new/Flask-Security-Too-4.1.3/docs/quickstart.rst
--- old/Flask-Security-Too-4.1.2/docs/quickstart.rst    2021-09-23 
00:54:50.000000000 +0200
+++ new/Flask-Security-Too-4.1.3/docs/quickstart.rst    2022-03-02 
17:58:26.000000000 +0100
@@ -80,6 +80,7 @@
     app.config["SQLALCHEMY_ENGINE_OPTIONS"] = {
         "pool_pre_ping": True,
     }
+    app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
 
     # Create database connection object
     db = SQLAlchemy(app)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Security-Too-4.1.2/flask_security/__init__.py 
new/Flask-Security-Too-4.1.3/flask_security/__init__.py
--- old/Flask-Security-Too-4.1.2/flask_security/__init__.py     2021-09-23 
00:54:50.000000000 +0200
+++ new/Flask-Security-Too-4.1.3/flask_security/__init__.py     2022-03-02 
17:58:26.000000000 +0100
@@ -105,4 +105,4 @@
     verify_and_update_password,
 )
 
-__version__ = "4.1.2"
+__version__ = "4.1.3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Security-Too-4.1.2/flask_security/cli.py 
new/Flask-Security-Too-4.1.3/flask_security/cli.py
--- old/Flask-Security-Too-4.1.2/flask_security/cli.py  2021-09-23 
00:54:50.000000000 +0200
+++ new/Flask-Security-Too-4.1.3/flask_security/cli.py  2022-03-02 
17:58:26.000000000 +0100
@@ -44,7 +44,6 @@
 
         return functools.update_wrapper(decorator, f)
 
-
 else:
     import flask.cli
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Security-Too-4.1.2/flask_security/core.py 
new/Flask-Security-Too-4.1.3/flask_security/core.py
--- old/Flask-Security-Too-4.1.2/flask_security/core.py 2021-09-23 
00:54:50.000000000 +0200
+++ new/Flask-Security-Too-4.1.3/flask_security/core.py 2022-03-02 
17:58:26.000000000 +0100
@@ -1118,7 +1118,7 @@
             raise ValueError("Datastore must be provided")
         self.datastore = self._datastore
 
-        if register_blueprint:
+        if register_blueprint is not None:
             self._register_blueprint = register_blueprint
         self.register_blueprint = self._register_blueprint
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Security-Too-4.1.2/flask_security/datastore.py 
new/Flask-Security-Too-4.1.3/flask_security/datastore.py
--- old/Flask-Security-Too-4.1.2/flask_security/datastore.py    2021-09-23 
00:54:50.000000000 +0200
+++ new/Flask-Security-Too-4.1.3/flask_security/datastore.py    2022-03-02 
17:58:26.000000000 +0100
@@ -570,7 +570,7 @@
         if config_value("JOIN_USER_ROLES") and hasattr(self.user_model, 
"roles"):
             from sqlalchemy.orm import joinedload
 
-            query = query.options(joinedload("roles"))
+            query = query.options(joinedload(self.user_model.roles))
 
         if case_insensitive:
             # While it is of course possible to pass in multiple keys to 
filter on
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Security-Too-4.1.2/flask_security/utils.py 
new/Flask-Security-Too-4.1.3/flask_security/utils.py
--- old/Flask-Security-Too-4.1.2/flask_security/utils.py        2021-09-23 
00:54:50.000000000 +0200
+++ new/Flask-Security-Too-4.1.3/flask_security/utils.py        2022-03-02 
17:58:26.000000000 +0100
@@ -98,7 +98,6 @@
         _datastore.commit()
         return response
 
-
 else:
 
     def view_commit(response=None):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Security-Too-4.1.2/setup.cfg 
new/Flask-Security-Too-4.1.3/setup.cfg
--- old/Flask-Security-Too-4.1.2/setup.cfg      2021-09-23 00:55:32.832971000 
+0200
+++ new/Flask-Security-Too-4.1.3/setup.cfg      2022-03-02 17:59:41.054738300 
+0100
@@ -9,6 +9,7 @@
 common = 
        bcrypt>=3.1.5
        flask_mail>=0.9.1
+       bleach>=3.3.1
 mfa = 
        cryptography>=3.0.0
        pyqrcode>=1.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Security-Too-4.1.2/tests/test_recoverable.py 
new/Flask-Security-Too-4.1.3/tests/test_recoverable.py
--- old/Flask-Security-Too-4.1.2/tests/test_recoverable.py      2021-09-23 
00:54:50.000000000 +0200
+++ new/Flask-Security-Too-4.1.3/tests/test_recoverable.py      2022-03-02 
17:58:26.000000000 +0100
@@ -566,3 +566,40 @@
     )
     assert response.status_code == 200
     assert get_message("PASSWORD_RESET_REQUEST", email="j...@lp.com") in 
response.data
+
+
+def test_password_normalization(app, client, get_message):
+    with capture_reset_password_requests() as requests:
+        response = client.post(
+            "/reset",
+            json=dict(email="m...@lp.com"),
+        )
+        assert response.status_code == 200
+    token = requests[0]["token"]
+
+    response = client.post(
+        "/reset/" + token,
+        json=dict(password="H??heH??he", password_confirm="H??heH??he"),
+    )
+    assert response.status_code == 200
+    logout(client)
+
+    # make sure can log in with new password both normnalized or not
+    response = client.post(
+        "/login",
+        json=dict(email="m...@lp.com", password="H??heH??he"),
+    )
+    assert response.status_code == 200
+    # verify actually logged in
+    response = client.get("/profile", follow_redirects=False)
+    assert response.status_code == 200
+    logout(client)
+
+    response = client.post(
+        "/login",
+        json=dict(email="m...@lp.com", password="Ho\u0308heHo\u0308he"),
+    )
+    assert response.status_code == 200
+    # verify actually logged in
+    response = client.get("/profile", follow_redirects=False)
+    assert response.status_code == 200
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Flask-Security-Too-4.1.2/tox.ini 
new/Flask-Security-Too-4.1.3/tox.ini
--- old/Flask-Security-Too-4.1.2/tox.ini        2021-09-23 00:54:50.000000000 
+0200
+++ new/Flask-Security-Too-4.1.3/tox.ini        2022-03-02 17:58:26.000000000 
+0100
@@ -1,6 +1,6 @@
 [tox]
 envlist =
-    py{36,37,38,39,py3}-{low,release}
+    py{36,37,38,39,py38}-{low,release}
     mypy
     nobabel
     style
@@ -9,14 +9,14 @@
     makedist
 skip_missing_interpreters = true
 
-[testenv:py{36,37,38,39,py3}-release]
+[testenv:py{36,37,38,39,py38}-release]
 deps =
     -r requirements/tests.txt
 commands =
     python setup.py compile_catalog
     pytest --basetemp={envtmpdir} {posargs:tests}
 
-[testenv:py{36,37,38,39,py3}-low]
+[testenv:py{36,37,38,39,py38}-low]
 deps =
     pytest
 
@@ -30,14 +30,15 @@
     argon2_cffi==20.1.0
     babel==2.7.0
     bcrypt==3.2.0
-    bleach==3.1.5
+    bleach==3.2.2
     cryptography==3.0.0
     # next 2 come from minimums from Flask 1.1.1
-    jinja2==2.10.1
-    itsdangerous==0.24
-    mongoengine==0.20.0
-    mongomock==3.21.0
-    pony==0.7.14
+    jinja2==2.11.0
+    itsdangerous==1.1.0
+    markupsafe==2.0.1
+    mongoengine==0.22.1
+    mongomock==3.22.0
+    pony==0.7.14;python_version<'3.10'
     phonenumberslite==8.11.1
     pyqrcode==1.2
     sqlalchemy==1.3.19

Reply via email to