Skip to content

Commit

Permalink
[#2076] Upgrade dependencies and fix tests
Browse files Browse the repository at this point in the history
    * upgrade mayin-2fa to 1.0.0
    * upgrade django-otp to 1.3.0
  • Loading branch information
pi-sigma committed Feb 6, 2024
1 parent 4d8dc1a commit 51fec04
Show file tree
Hide file tree
Showing 23 changed files with 101 additions and 46 deletions.
18 changes: 11 additions & 7 deletions requirements/base.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# This file is autogenerated by pip-compile with python 3.11
# To update, run:
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# ./bin/compile_dependencies.sh
#
Expand Down Expand Up @@ -204,7 +204,7 @@ django-ordered-model==3.4.3
# via
# -r requirements/base.in
# django-admin-index
django-otp==1.1.1
django-otp==1.3.0
# via django-two-factor-auth
django-phonenumber-field==5.2.0
# via django-two-factor-auth
Expand Down Expand Up @@ -304,7 +304,9 @@ face==20.1.1
fontawesomefree==6.4.2
# via -r requirements/base.in
fonttools[woff]==4.29.1
# via weasyprint
# via
# fonttools
# weasyprint
furl==2.1.3
# via
# -r requirements/base.in
Expand Down Expand Up @@ -358,7 +360,7 @@ markdown==3.3.6
# via -r requirements/base.in
markuppy==1.14
# via tablib
maykin-2fa==0.2.0
maykin-2fa==1.0.0
# via -r requirements/base.in
maykin-python3-saml==1.14.0.post0
# via
Expand All @@ -382,7 +384,7 @@ orderedmultidict==1.0.1
# via furl
packaging==23.0
# via djangocms-text-ckeditor
phonenumbers==8.12.33
phonenumbers==8.13.29
# via -r requirements/base.in
phonenumberslite==8.13.29
# via django-two-factor-auth
Expand Down Expand Up @@ -494,7 +496,9 @@ sqlparse==0.4.4
svglib==1.5.1
# via easy-thumbnails
tablib[html,ods,xls,xlsx,yaml]==3.1.0
# via django-import-export
# via
# django-import-export
# tablib
tinycss2==1.1.1
# via
# -r requirements/base.in
Expand Down
14 changes: 9 additions & 5 deletions requirements/ci.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# This file is autogenerated by pip-compile with python 3.11
# To update, run:
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# ./bin/compile_dependencies.sh
#
Expand Down Expand Up @@ -335,7 +335,7 @@ django-ordered-model==3.4.3
# -c requirements/base.txt
# -r requirements/base.txt
# django-admin-index
django-otp==1.1.1
django-otp==1.3.0
# via
# -c requirements/base.txt
# -r requirements/base.txt
Expand Down Expand Up @@ -421,6 +421,7 @@ django-two-factor-auth[phonenumberslite,webauthn]==1.15.5
# via
# -c requirements/base.txt
# -r requirements/base.txt
# django-two-factor-auth
# maykin-2fa
django-view-breadcrumbs==2.2.4
# via
Expand Down Expand Up @@ -482,6 +483,7 @@ easy-thumbnails[svg]==2.8.5
# -r requirements/base.txt
# django-filer
# djangocms-picture
# easy-thumbnails
ecs-logging==2.1.0
# via
# -c requirements/base.txt
Expand Down Expand Up @@ -523,6 +525,7 @@ fonttools[woff]==4.29.1
# via
# -c requirements/base.txt
# -r requirements/base.txt
# fonttools
# weasyprint
freezegun==1.1.0
# via -r requirements/test-tools.in
Expand Down Expand Up @@ -633,7 +636,7 @@ markuppy==1.14
# -c requirements/base.txt
# -r requirements/base.txt
# tablib
maykin-2fa==0.2.0
maykin-2fa==1.0.0
# via
# -c requirements/base.txt
# -r requirements/base.txt
Expand Down Expand Up @@ -687,7 +690,7 @@ packaging==23.0
# djangocms-text-ckeditor
pep8==1.7.1
# via -r requirements/test-tools.in
phonenumbers==8.12.33
phonenumbers==8.13.29
# via
# -c requirements/base.txt
# -r requirements/base.txt
Expand Down Expand Up @@ -892,6 +895,7 @@ tablib[html,ods,xls,xlsx,yaml]==3.1.0
# -c requirements/base.txt
# -r requirements/base.txt
# django-import-export
# tablib
tblib==1.7.0
# via -r requirements/test-tools.in
text-unidecode==1.3
Expand Down
14 changes: 9 additions & 5 deletions requirements/dev.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# This file is autogenerated by pip-compile with python 3.11
# To update, run:
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# ./bin/compile_dependencies.sh
#
Expand Down Expand Up @@ -374,7 +374,7 @@ django-ordered-model==3.4.3
# -c requirements/ci.txt
# -r requirements/ci.txt
# django-admin-index
django-otp==1.1.1
django-otp==1.3.0
# via
# -c requirements/ci.txt
# -r requirements/ci.txt
Expand Down Expand Up @@ -460,6 +460,7 @@ django-two-factor-auth[phonenumberslite,webauthn]==1.15.5
# via
# -c requirements/ci.txt
# -r requirements/ci.txt
# django-two-factor-auth
# maykin-2fa
django-view-breadcrumbs==2.2.4
# via
Expand Down Expand Up @@ -527,6 +528,7 @@ easy-thumbnails[svg]==2.8.5
# -r requirements/ci.txt
# django-filer
# djangocms-picture
# easy-thumbnails
ecs-logging==2.1.0
# via
# -c requirements/ci.txt
Expand Down Expand Up @@ -584,6 +586,7 @@ fonttools[woff]==4.29.1
# via
# -c requirements/ci.txt
# -r requirements/ci.txt
# fonttools
# weasyprint
freezegun==1.1.0
# via
Expand Down Expand Up @@ -728,7 +731,7 @@ markupsafe==2.1.3
# via
# jinja2
# werkzeug
maykin-2fa==0.2.0
maykin-2fa==1.0.0
# via
# -c requirements/ci.txt
# -r requirements/ci.txt
Expand Down Expand Up @@ -800,7 +803,7 @@ pep8==1.7.1
# via
# -c requirements/ci.txt
# -r requirements/ci.txt
phonenumbers==8.12.33
phonenumbers==8.13.29
# via
# -c requirements/ci.txt
# -r requirements/ci.txt
Expand Down Expand Up @@ -1060,6 +1063,7 @@ tablib[html,ods,xls,xlsx,yaml]==3.1.0
# -c requirements/ci.txt
# -r requirements/ci.txt
# django-import-export
# tablib
tblib==1.7.0
# via
# -c requirements/ci.txt
Expand Down
2 changes: 2 additions & 0 deletions src/open_inwoner/accounts/tests/test_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from django.utils.translation import ugettext as _

from django_webtest import WebTest
from maykin_2fa.test import disable_admin_mfa
from webtest import Upload

from open_inwoner.utils.tests.helpers import create_image_bytes
Expand All @@ -11,6 +12,7 @@
from .factories import UserFactory


@disable_admin_mfa()
class TestAdminUser(WebTest):
def setUp(self):
self.user = UserFactory(
Expand Down
8 changes: 7 additions & 1 deletion src/open_inwoner/accounts/tests/test_logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

from django_webtest import WebTest
from freezegun import freeze_time
from maykin_2fa.test import disable_admin_mfa
from privates.test import temp_private_root
from timeline_logger.models import TimelineLog

Expand All @@ -30,6 +31,7 @@
)


@disable_admin_mfa()
@freeze_time("2021-10-18 13:00:00")
@override_settings(ROOT_URLCONF="open_inwoner.cms.tests.urls")
class TestProfile(WebTest):
Expand Down Expand Up @@ -115,7 +117,11 @@ def test_user_notifications_update_is_logged(self, mock_cms_page_display):
)

def test_login_via_admin_is_logged(self):
self.app.post(reverse("admin:login"), user=self.user)
login_page = self.app.get(reverse("admin:login"))
login_page.form["auth-username"] = self.user.email
login_page.form["auth-password"] = "secret"
login_page.form.submit()

log_entry = TimelineLog.objects.get()

self.assertEqual(
Expand Down
2 changes: 2 additions & 0 deletions src/open_inwoner/cms/tests/test_middleware.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@
from django.test import TestCase, override_settings
from django.urls import reverse

from maykin_2fa.test import disable_admin_mfa
from pyquery import PyQuery as pq

from open_inwoner.cms.tests import cms_tools
from open_inwoner.cms.utils.middleware import DropToolbarMiddleware
from open_inwoner.utils.tests.helpers import TwoFactorUserTestMixin


@disable_admin_mfa()
@override_settings(TWO_FACTOR_FORCE_OTP_ADMIN=False)
class TestDropToolbarMiddleware(TwoFactorUserTestMixin, TestCase):
@classmethod
Expand Down
5 changes: 0 additions & 5 deletions src/open_inwoner/conf/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -247,12 +247,7 @@
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
"axes.middleware.AxesMiddleware",
<<<<<<< HEAD
"django_otp.middleware.OTPMiddleware",
=======
"hijack.middleware.HijackUserMiddleware",
"maykin_2fa.middleware.OTPMiddleware",
>>>>>>> 02e70ca5 ([WIP] First attempt to replace 2FA with maykin-2fa)
"django.middleware.locale.LocaleMiddleware",
"cms.middleware.utils.ApphookReloadMiddleware",
"cms.middleware.user.CurrentUserMiddleware",
Expand Down
4 changes: 4 additions & 0 deletions src/open_inwoner/conf/dev.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,10 @@

TWO_FACTOR_PATCH_ADMIN = False

# Disable two-factor authentication by default for development
if config("DISABLE_2FA", default=True):
MAYKIN_2FA_ALLOW_MFA_BYPASS_BACKENDS = AUTHENTICATION_BACKENDS

# playwright multi browser
PLAYWRIGHT_MULTI_ONLY_DEFAULT = True

Expand Down
3 changes: 3 additions & 0 deletions src/open_inwoner/configurations/tests/test_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@
from django.utils.translation import ugettext_lazy as _

from django_webtest import WebTest
from maykin_2fa.test import disable_admin_mfa
from pyquery import PyQuery

from open_inwoner.accounts.tests.factories import UserFactory

from ..models import SiteConfiguration


@disable_admin_mfa()
class TestAdminSite(WebTest):
csrf_checks = False

Expand Down Expand Up @@ -102,6 +104,7 @@ def test_bulk_delete_fail(self):
)


@disable_admin_mfa()
class TestAdminForm(WebTest):
def setUp(self):
self.user = UserFactory(is_superuser=True, is_staff=True)
Expand Down
2 changes: 2 additions & 0 deletions src/open_inwoner/configurations/tests/test_colors.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@
from django.utils.translation import gettext as _

from django_webtest import WebTest
from maykin_2fa.test import disable_admin_mfa

from open_inwoner.accounts.tests.factories import UserFactory


@disable_admin_mfa()
class TestConfigurationColors(WebTest):
def setUp(self):
super().setUp()
Expand Down
10 changes: 7 additions & 3 deletions src/open_inwoner/configurations/tests/test_oidc.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from django.utils.translation import gettext_lazy as _

from django_webtest import WebTest
from maykin_2fa.test import disable_admin_mfa
from mozilla_django_oidc_db.models import OpenIDConnectConfig

from open_inwoner.accounts.tests.factories import UserFactory
Expand All @@ -11,6 +12,7 @@
from ..choices import OpenIDDisplayChoices


@disable_admin_mfa()
class OIDCConfigTest(ClearCachesMixin, WebTest):
csrf_checks = False

Expand All @@ -22,7 +24,7 @@ def setUpTestData(cls):
openid_config.enabled = True
openid_config.save()

def test_admin_only_enabled(self):
def test_admin_only_enlabled(self):
"""Assert that the OIDC login option is only displayed for login via admin"""

config = SiteConfiguration.get_solo()
Expand All @@ -39,7 +41,9 @@ def test_admin_only_enabled(self):

oidc_login_option = response.pyquery.find(".admin-login-option")

self.assertEqual(oidc_login_option.text(), _("Login with organization account"))
self.assertEqual(
oidc_login_option.text(), _("of Log in met een organisatieaccount")
)

def test_admin_only_disabled(self):
"""Assert that the OIDC login option is only displayed for regular users"""
Expand All @@ -59,7 +63,7 @@ def test_admin_only_disabled(self):
# admin login
response = self.client.get(reverse("admin:login"))

self.assertNotContains(response, _("Login with organization account"))
self.assertNotContains(response, _("of Log in met een organisatieaccount"))

def test_oidc_config_validation(self):
"""
Expand Down
2 changes: 2 additions & 0 deletions src/open_inwoner/media/tests/test_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@

from cms.utils.permissions import set_current_user
from django_webtest import WebTest
from maykin_2fa.test import disable_admin_mfa

from open_inwoner.accounts.tests.factories import UserFactory

from .factories import VideoFactory


@disable_admin_mfa()
class VideoAdminTests(WebTest):
def setUp(self):
set_current_user(
Expand Down
2 changes: 2 additions & 0 deletions src/open_inwoner/openzaak/tests/test_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@
from django.utils.translation import gettext_lazy as _

from django_webtest import WebTest
from maykin_2fa.test import disable_admin_mfa

from open_inwoner.accounts.tests.factories import UserFactory

from .factories import ZaakTypeConfigFactory, ZaakTypeInformatieObjectTypeConfigFactory


@disable_admin_mfa()
class TestZaakTypeConfigAdmin(WebTest):
def setUp(self):
self.user = UserFactory(is_superuser=True, is_staff=True)
Expand Down
Loading

0 comments on commit 51fec04

Please sign in to comment.