Skip to content

Commit 545fd1f

Browse files
authored
django-allauth v64 migration (#655)
1 parent 1a33e99 commit 545fd1f

13 files changed

+46
-90
lines changed

.flake8

-5
This file was deleted.

.github/workflows/main.yml

+7-7
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ jobs:
2121
- name: Install dependencies
2222
run: |
2323
python -m pip install --upgrade pip
24-
pip install flake8
24+
pip install -r dj_rest_auth/tests/requirements.txt
2525
- name: Lint
26-
run: flake8 dj_rest_auth/ --append-config ./.flake8
26+
run: flake8 dj_rest_auth/
2727
build:
2828
runs-on: ubuntu-latest
2929
name: Build
30-
needs: [lint]
30+
needs: [ lint ]
3131
steps:
3232
- name: Checkout
3333
uses: actions/checkout@v4
@@ -48,11 +48,11 @@ jobs:
4848
test:
4949
runs-on: ubuntu-20.04
5050
name: Test Python ${{ matrix.python-version }} + Django ~= ${{ matrix.django-version }}
51-
needs: [build]
51+
needs: [ build ]
5252
strategy:
5353
matrix:
54-
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
55-
django-version: ['4.2', '5.0']
54+
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12' ]
55+
django-version: [ '4.2', '5.0' ]
5656
exclude:
5757
- python-version: '3.8'
5858
django-version: '5.0'
@@ -67,7 +67,7 @@ jobs:
6767
python-version: ${{ matrix.python-version }}
6868
- name: Install dependencies
6969
run: |
70-
pip install -r dj_rest_auth/tests/requirements.pip
70+
pip install -r dj_rest_auth/tests/requirements.txt
7171
pip install "Django~=${{ matrix.django-version }}.0"
7272
- name: Run Tests
7373
run: |

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ REST_AUTH = {
4747

4848
### Testing
4949

50-
Install required modules with `pip install -r dj_rest_auth/tests/requirements.pip`
50+
Install required modules with `pip install -r dj_rest_auth/tests/requirements.txt`
5151

5252
To run the tests within a virtualenv, run `python runtests.py` from the repository directory.
5353
The easiest way to run test coverage is with [`coverage`](https://pypi.org/project/coverage/),

demo/requirements.pip

-8
This file was deleted.

demo/requirements.txt

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
django>=5.0.0
2+
djangorestframework>=3.11.0
3+
djangorestframework-simplejwt==5.3.1
4+
django-allauth[socialaccount]>=64.0.0
5+
drf-yasg==1.21.7
6+
django-cors-headers==4.4.0
7+
coreapi==2.3.3
8+
setuptools==75.1.0
9+
-e ./..
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
coveralls==1.11.1
2-
django-allauth==0.61.1
2+
django-allauth[socialaccount]>=64.0.0
33
djangorestframework-simplejwt>=5.3.1
4-
flake8==3.8.4
4+
flake8==7.1.1
55
responses==0.12.1
66
unittest-xml-reporting==3.2.0

dj_rest_auth/tests/test_api.py

+1-31
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
try:
1919
from django.urls import reverse
2020
except ImportError: # pragma: no cover
21-
from django.core.urlresolvers import reverse
21+
from django.core.urlresolvers import reverse # noqa
2222

2323
from jwt import decode as decode_jwt
2424
from rest_framework_simplejwt.serializers import TokenObtainPairSerializer
@@ -527,36 +527,6 @@ def test_registration_with_jwt(self):
527527
self._login()
528528
self._logout()
529529

530-
@override_api_settings(SESSION_LOGIN=True)
531-
@override_api_settings(TOKEN_MODEL=None)
532-
def test_registration_with_session(self):
533-
import sys
534-
from importlib import reload
535-
from django.contrib.sessions.middleware import SessionMiddleware
536-
from django.contrib.messages.middleware import MessageMiddleware
537-
reload(sys.modules['dj_rest_auth.models'])
538-
reload(sys.modules['dj_rest_auth.registration.views'])
539-
from dj_rest_auth.registration.views import RegisterView
540-
541-
user_count = get_user_model().objects.all().count()
542-
543-
self.post(self.register_url, data={}, status_code=400)
544-
545-
factory = APIRequestFactory()
546-
request = factory.post(self.register_url, self.REGISTRATION_DATA)
547-
548-
for middleware_class in (SessionMiddleware, MessageMiddleware):
549-
middleware = middleware_class(lambda request: None)
550-
middleware.process_request(request)
551-
552-
response = RegisterView.as_view()(request)
553-
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
554-
self.assertEqual(response.data, None)
555-
self.assertEqual(get_user_model().objects.all().count(), user_count + 1)
556-
557-
self._login(status.HTTP_204_NO_CONTENT)
558-
self._logout()
559-
560530
def test_registration_with_invalid_password(self):
561531
data = self.REGISTRATION_DATA.copy()
562532
data['password2'] = 'foobar'

dj_rest_auth/tests/test_serializers.py

+2-16
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
11

22
from allauth.socialaccount.providers.facebook.views import FacebookOAuth2Adapter
3-
from allauth.socialaccount.providers.facebook.views import FacebookProvider
43
from allauth.socialaccount.models import SocialApp
5-
from allauth.core.exceptions import ImmediateHttpResponse
64
from django.contrib.auth import get_user_model
75
from django.urls import reverse
86
from django.core.exceptions import ValidationError
97
from django.test import TestCase, modify_settings, override_settings
108
from django.contrib.sites.models import Site
11-
from django.http import HttpResponseBadRequest
129
from rest_framework.exceptions import ErrorDetail
1310
from rest_framework.test import APIRequestFactory, force_authenticate
14-
from unittest.mock import MagicMock, patch
11+
from unittest.mock import MagicMock
1512

1613
from dj_rest_auth.serializers import PasswordChangeSerializer, UserDetailsSerializer
1714
from dj_rest_auth.registration.serializers import SocialLoginSerializer
@@ -142,23 +139,12 @@ def test_validate_no_view_submit(self):
142139
serializer.is_valid()
143140
self.assertDictEqual(serializer.errors, self.NO_VIEW_SUBMIT_ERROR)
144141

145-
def test_validate_no_adpapter_class_present(self):
142+
def test_validate_no_adapter_class_present(self):
146143
dummy_view = SocialLoginView()
147144
serializer = SocialLoginSerializer(data=self.request_data, context={'request': self.request, 'view': dummy_view})
148145
serializer.is_valid()
149146
self.assertDictEqual(serializer.errors, self.NO_ADAPTER_CLASS_PRESENT)
150147

151-
@patch('allauth.socialaccount.providers.facebook.views.fb_complete_login')
152-
@patch('allauth.socialaccount.adapter.DefaultSocialAccountAdapter.pre_social_login')
153-
def test_immediate_http_response_error(self, mock_pre_social_login, mock_fb_complete_login):
154-
dummy_view = SocialLoginView()
155-
dummy_view.adapter_class = FacebookOAuth2Adapter
156-
mock_pre_social_login.side_effect = lambda request, social_login: exec('raise ImmediateHttpResponse(HttpResponseBadRequest("Bad Request"))')
157-
mock_fb_complete_login.return_value = FacebookProvider(self.request, app=FacebookOAuth2Adapter).sociallogin_from_response(self.request, self.fb_response)
158-
serializer = SocialLoginSerializer(data=self.request_data, context={'request': self.request, 'view': dummy_view})
159-
serializer.is_valid()
160-
self.assertDictEqual(serializer.errors, self.HTTP_BAD_REQUEST_MESSAGE)
161-
162148
def test_http_error(self):
163149
dummy_view = SocialLoginView()
164150
dummy_view.adapter_class = FacebookOAuth2Adapter

dj_rest_auth/tests/test_social.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
try:
1717
from django.urls import reverse
1818
except ImportError:
19-
from django.core.urlresolvers import reverse
19+
from django.core.urlresolvers import reverse # noqa
2020

2121

2222
@override_settings(ROOT_URLCONF='tests.urls')

docs/demo.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ To run this locally follow the steps below.
1010
cd /tmp
1111
git clone https://github.com/iMerica/dj-rest-auth.git
1212
cd dj-rest-auth/demo/
13-
pip install -r requirements.pip
13+
pip install -r requirements.txt
1414
python manage.py migrate --settings=demo.settings --noinput
1515
python manage.py runserver --settings=demo.settings
1616

setup.cfg

+9-6
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,29 @@ license_file = LICENSE
1010
max-line-length = 120
1111
exclude = docs/*,demo/*
1212
ignore = F403
13-
13+
per-file-ignores =
14+
dj_rest_auth/tests/test_serializers.py:E501,F401
15+
dj_rest_auth/serializers.py:E501
16+
dj_rest_auth/jwt_auth.py:E501
1417

1518
[coverage:run]
16-
omit=*site-packages*,*distutils*,*migrations*
19+
omit = *site-packages*,*distutils*,*migrations*
1720

1821
[coverage:report]
1922
# Regexes for lines to exclude from consideration
2023
exclude_lines =
21-
# Have to re-enable the standard pragma
24+
# Have to re-enable the standard pragma
2225
pragma: no cover
2326

24-
# Don't complain about missing debug-only code:
27+
# Don't complain about missing debug-only code:
2528
def __repr__
2629
if self\.debug
2730

28-
# Don't complain if tests don't hit defensive assertion code:
31+
# Don't complain if tests don't hit defensive assertion code:
2932
raise AssertionError
3033
raise NotImplementedError
3134

32-
# Don't complain if non-runnable code isn't run:
35+
# Don't complain if non-runnable code isn't run:
3336
if 0:
3437
if __name__ == .__main__.:
3538

setup.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,19 @@
2828
keywords='django rest auth registration rest-framework django-registration api',
2929
zip_safe=False,
3030
install_requires=[
31-
'Django>=3.2,<6.0',
31+
'Django>=4.2,<6.0',
3232
'djangorestframework>=3.13.0',
3333
],
3434
extras_require={
35-
'with-social': ['django-allauth>=0.56.0,<0.62.0'],
35+
'with-social': ['django-allauth[socialaccount]>=64.0.0'],
3636
},
3737
tests_require=[
3838
'coveralls>=1.11.1',
39-
'django-allauth>=0.57.0',
40-
'djangorestframework-simplejwt==4.6.0',
39+
'django-allauth>=64.0.0',
40+
'djangorestframework-simplejwt==5.3.1',
4141
'responses==0.12.1',
42-
'unittest-xml-reporting==3.0.4',
42+
'unittest-xml-reporting==3.2.0',
43+
'flake8==7.1.1',
4344
],
4445
test_suite='runtests.runtests',
4546
include_package_data=True,

tox.ini

+7-7
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,22 @@
1010
[tox]
1111
skipsdist = true
1212
envlist =
13-
python{3.8,3.9,3.10,3.11}-django{4,5}
13+
python{3.8,3.9,3.10,3.11,3.12}-django{4,5}
1414

1515
[gh-actions]
1616
python =
1717
3.8: python3.8-django4
1818
3.9: python3.9-django4
1919
3.10: python3.10-django4, python3.10-django5
2020
3.11: python3.11-django4, python3.11-django5
21+
3.12: python3.12-django4, python3.12-django5
2122

2223
[testenv]
2324
commands =
2425
python ./runtests.py
2526
deps =
26-
-rdj_rest_auth/tests/requirements.pip
27-
django4: Django>=4.0,<5.0
27+
-r dj_rest_auth/tests/requirements.txt
28+
django4: Django>=4.2,<5.0
2829
django5: Django>=5.0,<6.0
2930

3031
# Configuration for coverage and flake8 is being set in `./setup.cfg`
@@ -33,11 +34,10 @@ commands =
3334
coverage run ./runtests.py
3435
coverage report
3536
deps =
36-
-rdj_rest_auth/tests/requirements.pip
37+
-r dj_rest_auth/tests/requirements.txt
3738

3839
[testenv:flake8]
39-
changedir = {toxinidir}/dj_rest_auth
4040
commands =
41-
flake8 .
41+
flake8 {toxinidir}/dj_rest_auth
4242
deps =
43-
flake8==3.8.4
43+
flake8==7.1.1

0 commit comments

Comments
 (0)