From 00b16f39d0cf4fb37d20540ecae41b6550982306 Mon Sep 17 00:00:00 2001 From: Agate Berriot Date: Thu, 4 Aug 2022 15:02:17 +0200 Subject: [PATCH 2/2] Fixed failing tests under django 3.2 (#67945) --- tests/pricing/manager/test_agenda_pricing.py | 16 ++++++++++++++-- tests/settings.py | 10 ++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/tests/pricing/manager/test_agenda_pricing.py b/tests/pricing/manager/test_agenda_pricing.py index 0b8fcd8..725d51d 100644 --- a/tests/pricing/manager/test_agenda_pricing.py +++ b/tests/pricing/manager/test_agenda_pricing.py @@ -506,13 +506,25 @@ def test_detail_agenda_pricing_test_tool(mock_pricing_data, mock_subscriptions, adult_external_id='adult:1', ) ] + + # XXX Compat: html entities are slightly different under django 2 and django 3 + # the following code ensure tests pass under both versions. + # The output looks exactly the same to an end user. assert '

Pricing: 42.00

' in resp - assert '
{'foo': 'bar', 'pricing': Decimal('42')}
' in resp + django2_match = ( + '
{'foo': 'bar', 'pricing': Decimal('42')}
' in resp + ) + django3_match = ( + '
{'foo': 'bar', 'pricing': Decimal('42')}
' in resp + ) + assert django2_match or django3_match mock_pricing_data.side_effect = PricingError(details={'foo': 'error'}) resp = resp.form.submit().follow() assert 'Computed pricing data' in resp - assert '
{'error': {'foo': 'error'}}
' in resp + django2_match = '
{'error': {'foo': 'error'}}
' in resp + django3_match = '
{'error': {'foo': 'error'}}
' in resp + assert django2_match or django3_match @mock.patch('lingo.pricing.forms.get_event') diff --git a/tests/settings.py b/tests/settings.py index ea1cce9..24169bd 100644 --- a/tests/settings.py +++ b/tests/settings.py @@ -50,3 +50,13 @@ KNOWN_SERVICES = { } PASSWORD_HASHERS = ["django.contrib.auth.hashers.MD5PasswordHasher"] +REST_FRAMEWORK = { + 'EXCEPTION_HANDLER': 'lingo.api.utils.exception_handler', + # this is the default value but by explicitely setting it + # we avoid a collision with django-webtest erasing the setting + # while patching it + 'DEFAULT_AUTHENTICATION_CLASSES': [ + 'rest_framework.authentication.SessionAuthentication', + 'rest_framework.authentication.BasicAuthentication', + ], +} -- 2.36.1