e476fddd2d41 — Peter Sanchez 1.8.0 2 years ago
Updating for Django 4.0 support
6 files changed, 31 insertions(+), 21 deletions(-)

M README.md
M README.rst
M impersonate/__init__.py
M impersonate/tests.py
M runtests.py
M tox.ini
M README.md +8 -7
@@ 458,15 458,16 @@ need tox.:
 
 And you should see:
 
-    py36-django2.2: commands succeeded
-    py36-django3.0: commands succeeded
-    py36-django3.1: commands succeeded
     py37-django2.2: commands succeeded
-    py37-django3.0: commands succeeded
-    py37-django3.1: commands succeeded
+    py37-django3.2: commands succeeded
     py38-django2.2: commands succeeded
-    py38-django3.0: commands succeeded
-    py38-django3.1: commands succeeded
+    py38-django3.2: commands succeeded
+    py39-django2.2: commands succeeded
+    py39-django3.2: commands succeeded
+    py38-django4.0: commands succeeded
+    py39-django4.0: commands succeeded
+    py310-django3.2: commands succeeded
+    py310-django4.0: commands succeeded
     congratulations :)
 
 # Contributing

          
M README.rst +8 -7
@@ 540,15 540,16 @@ And you should see:
 
 ::
 
-   py36-django2.2: commands succeeded
-   py36-django3.0: commands succeeded
-   py36-django3.1: commands succeeded
    py37-django2.2: commands succeeded
-   py37-django3.0: commands succeeded
-   py37-django3.1: commands succeeded
+   py37-django3.2: commands succeeded
    py38-django2.2: commands succeeded
-   py38-django3.0: commands succeeded
-   py38-django3.1: commands succeeded
+   py38-django3.2: commands succeeded
+   py39-django2.2: commands succeeded
+   py39-django3.2: commands succeeded
+   py38-django4.0: commands succeeded
+   py39-django4.0: commands succeeded
+   py310-django3.2: commands succeeded
+   py310-django4.0: commands succeeded
    congratulations :)
 
 Contributing

          
M impersonate/__init__.py +1 -1
@@ 1,5 1,5 @@ 
 # -*- coding: utf-8 -*-
-VERSION = (1, 7, 3, 'final', 0)
+VERSION = (1, 8, 0, 'final', 0)
 
 
 # taken from django-registration

          
M impersonate/tests.py +10 -3
@@ 50,6 50,13 @@ User = get_user_model()
 django_version_loose = LooseVersion(django.get_version())
 
 
+def _get_location(response):
+    # For 2.2 compat. Remove once 2.2 support is EOL
+    if hasattr(response, 'headers'):
+        return response.headers['location']
+    return response._headers['location'][1]
+
+
 def test_view(request):
     return HttpResponse('OK {0}'.format(request.user))
 

          
@@ 439,7 446,7 @@ class TestImpersonation(TestCase):
             # compare querystrings
             self.assertEqual(
                 'http://testserver{0}'.format(starting_url),
-                response._headers['location'][1],
+                _get_location(response),
             )
             self.assertEqual(self.client.session.get('_impersonate'), None)
             self.client.logout()

          
@@ 465,12 472,12 @@ class TestImpersonation(TestCase):
 
                 if not use_refer and django_version_loose >= '1.9':
                     self.assertEqual(
-                        use_url_path, response._headers['location'][1]
+                        use_url_path, _get_location(response),
                     )
                 else:
                     self.assertEqual(
                         'http://testserver{0}'.format(use_url_path),
-                        response._headers['location'][1],
+                        _get_location(response),
                     )
 
                 self.assertEqual(self.client.session.get('_impersonate'), None)

          
M runtests.py +1 -0
@@ 12,6 12,7 @@ settings.configure(
     DATABASES={'default': {'ENGINE': 'django.db.backends.sqlite3',},},
     USE_TZ=True,
     ROOT_URLCONF='{0}.tests'.format(APP_NAME),
+    SECRET_KEY='somerandomsecretkey',
     # LOGGING = {
     #     'version': 1,
     #     'disable_existing_loggers': False,

          
M tox.ini +3 -3
@@ 1,10 1,10 @@ 
 [tox]
 downloadcache = {toxworkdir}/cache/
-envlist = py{36,37,38}-django{2.2,3.0,3.1}
+envlist = py{37,38,39}-django{2.2,3.2},py{38,39}-django{4.0},py310-django{3.2,4.0}
 
 [testenv]
 commands = {envpython} runtests.py
 deps =
 	django2.2: django>=2.2,<3.0
-	django3.0: django>=3.0,<3.1
-	django3.1: django>=3.1,<3.2
+	django3.2: django>=3.2,<4.0
+	django4.0: django>=4.0,<4.1