Skip to content

Commit be3079c

Browse files
authored
release v0.12 (#208)
1 parent f7b3031 commit be3079c

File tree

9 files changed

+42
-29
lines changed

9 files changed

+42
-29
lines changed

.circleci/config.yml

+7-4
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,16 @@ jobs:
4848
pyshort="${python//./}"
4949
venv/bin/tox -e py${pyshort}-dj<< parameters.django >> -- --junitxml=~/reports/tox/coverage.xml
5050
- when:
51-
condition: { equal: [<< parameters.python >>, "3.10"] }
51+
condition:
52+
and:
53+
- equal: [<< parameters.python >>, "3.10"]
54+
- equal: [<< parameters.django >>, "4.0"]
5255
steps:
5356
- run:
5457
name: Check coverage with Python << parameters.python >>
5558
command: venv/bin/tox -e coverage
5659
- save_cache:
57-
key: py<< parameters.python >>-dj<< parameters.django>>-v1-{{ arch }}-{{ checksum "requirements-test.txt" }}-{{ checksum "demo/requirements.txt" }}
60+
key: py<< parameters.python >>-dj<< parameters.django>>-v2-{{ arch }}-{{ checksum "requirements-test.txt" }}-{{ checksum "demo/requirements.txt" }}
5861
paths:
5962
- venv
6063
- .tox
@@ -68,7 +71,7 @@ jobs:
6871
steps:
6972
- checkout
7073
- restore_cache:
71-
key: check-v1
74+
key: check-v2
7275
- run:
7376
name: Install CI tools
7477
command: |
@@ -78,7 +81,7 @@ jobs:
7881
name: Check packaging and dependencies
7982
command: venv/bin/tox -e pkg
8083
- save_cache:
81-
key: check-v1
84+
key: check-v2
8285
paths:
8386
- venv
8487
- .tox

CHANGELOG.md

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
# Changelog for Rest-Framework-Auth-Toolkit
22

3-
## v0.12 (unreleased)
3+
## v0.12
44

55
Library tested with Python 3.9 and 3.10,
6-
and Django 3.2, 4.0 and 4.1 (#172)
6+
and Django 3.2, 4.0 and 4.1 (#172, #208)
7+
8+
`SignupDeserializer.create` passes all validated data to the
9+
`AUTH_USER.objects.create_user` method, so that data for extra
10+
fields in your serializer subclass gets passed automatically
711

812

913
## v0.11

demo/demo/settings.py

-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@
9494

9595
TIME_ZONE = 'UTC'
9696
USE_I18N = True
97-
USE_L10N = True
9897
LANGUAGE_CODE = 'en'
9998

10099
USE_TZ = True

rest_auth_toolkit/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
"""Simple + flexible signup and login for Django APIs"""
22

3-
__version__ = '0.12.dev1'
3+
__version__ = '0.12'
121 Bytes
Binary file not shown.

rest_auth_toolkit/locale/fr/LC_MESSAGES/django.po

+9-5
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ msgid ""
88
msgstr ""
99
"Project-Id-Version: PACKAGE VERSION\n"
1010
"Report-Msgid-Bugs-To: \n"
11-
"POT-Creation-Date: 2018-06-06 16:41-0400\n"
11+
"POT-Creation-Date: 2022-08-30 18:24+0000\n"
1212
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1313
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1414
"Language-Team: LANGUAGE <[email protected]>\n"
@@ -34,7 +34,7 @@ msgstr "Dates importantes"
3434
msgid "email address"
3535
msgstr "adresse électronique"
3636

37-
#: models.py:36 models.py:56 models.py:98
37+
#: models.py:36 models.py:56 models.py:104
3838
msgid "user"
3939
msgstr "utilisateur"
4040

@@ -46,11 +46,15 @@ msgstr "utilisateurs"
4646
msgid "confirmed"
4747
msgstr "confirmé"
4848

49-
#: models.py:95
49+
#: models.py:101
5050
msgid "key"
5151
msgstr "clé"
5252

53-
#: serializers.py:42
53+
#: serializers.py:56
54+
msgid "Email address already used by another account"
55+
msgstr "Adresse électronique déjà utilisée par un autre compte"
56+
57+
#: serializers.py:70
5458
msgid "Invalid email or password"
5559
msgstr "Adresse électronique ou mot de passe invalide"
5660

@@ -59,6 +63,6 @@ msgstr "Adresse électronique ou mot de passe invalide"
5963
msgid "Follow this link to validate your email:"
6064
msgstr "Suivez ce lien pour valider votre adresse électronique:"
6165

62-
#: views.py:122
66+
#: views.py:150
6367
msgid "Confirm your email address"
6468
msgstr "Confirmez votre adresse électronique"

rest_auth_toolkit/serializers.py

+8-5
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from django.contrib.auth import password_validation
44
from django.contrib.auth.signals import user_logged_in
55
from django.core import exceptions
6+
from django.db.utils import IntegrityError
67
from django.utils.translation import gettext as _
78

89
from rest_framework import serializers
@@ -22,6 +23,8 @@
2223
class SignupDeserializer(serializers.ModelSerializer):
2324
"""Deserializer to create users without username."""
2425

26+
email = CustomEmailField()
27+
2528
class Meta:
2629
model = User
2730
fields = ('email', 'password')
@@ -47,11 +50,11 @@ def validate(self, data):
4750
return data
4851

4952
def create(self, validated_data):
50-
return User.objects.create_user(
51-
email=validated_data['email'],
52-
password=validated_data['password'],
53-
is_active=False,
54-
)
53+
try:
54+
return User.objects.create_user(**validated_data, is_active=False)
55+
except IntegrityError:
56+
msg = _('Email address already used by another account')
57+
raise serializers.ValidationError({'email': [msg]})
5558

5659

5760
class LoginDeserializer(serializers.Serializer):

tests/functional/test_email.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def test_signup_invalid_email(db, django_app):
5050
5151
])
5252
def test_signup_already_exists(db, django_app, user0, email):
53-
params = {"email": email, "password": "pass123"}
53+
params = {"email": email, "password": "pass123@!!"}
5454
resp = django_app.post_json(reverse("auth:signup"), params=params, status=400)
5555

5656
assert "email" in resp.json

tox.ini

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
[tox]
2-
# quick test with bare "tox" command checks only one combination
3-
envlist = py310-dj4.0
2+
envlist = py{310,39}-dj{4.1,4.0,3.2}
43
minversion = 3.4.0
54
isolated_build = True
65

76
[testenv]
87
passenv =
98
DATABASE_URL
109
deps =
11-
dj3.2: django == 3.2.*
12-
dj4.0: django == 4.0.*
13-
dj4.1: django == 4.1.*
10+
-r requirements-test.txt
11+
-r demo/requirements.txt
1412
commands =
15-
pip install -r requirements-test.txt -r demo/requirements.txt
13+
py{310,39}-dj3.2: pip install django==3.2.*
14+
py{310,39}-dj4.0: pip install django==4.0.*
15+
py{310,39}-dj4.1: pip install django==4.1.*
1616
flake8 rest_auth_toolkit tests demo
1717
pytest {posargs}
1818

@@ -24,15 +24,15 @@ commands =
2424

2525
[testenv:pkg]
2626
deps =
27+
pip-audit
2728
flit
2829
twine
2930
readme_renderer[md]
30-
safety >= 1.8.4
3131
commands =
32+
flit install
33+
pip-audit
3234
flit build
33-
# FIXME check all dists when flit fixes #216
34-
twine check dist/*.whl
35-
safety check
35+
twine check dist/*
3636

3737

3838
[pytest]

0 commit comments

Comments
 (0)