1
|
|
|
from django.conf import settings |
|
|
|
|
2
|
|
|
from django.contrib.auth import get_user_model |
|
|
|
|
3
|
|
|
from django.test.utils import override_settings |
|
|
|
|
4
|
|
|
from djet import assertions, restframework, utils |
|
|
|
|
5
|
|
|
from rest_framework import status |
|
|
|
|
6
|
|
|
import djoser.views |
7
|
|
|
|
8
|
|
|
from .common import create_user |
9
|
|
|
|
10
|
|
|
User = get_user_model() |
|
|
|
|
11
|
|
|
|
12
|
|
|
|
13
|
|
|
class UserViewTest(restframework.APIViewTestCase, |
|
|
|
|
14
|
|
|
assertions.EmailAssertionsMixin, |
15
|
|
|
assertions.StatusCodeAssertionsMixin): |
16
|
|
|
view_class = djoser.views.UserView |
17
|
|
|
|
18
|
|
|
def test_get_return_user(self): |
|
|
|
|
19
|
|
|
user = create_user() |
20
|
|
|
request = self.factory.get(user=user) |
21
|
|
|
|
22
|
|
|
response = self.view(request) |
23
|
|
|
|
24
|
|
|
self.assert_status_equal(response, status.HTTP_200_OK) |
25
|
|
|
self.assertEqual(set(response.data.keys()), set( |
26
|
|
|
[User.USERNAME_FIELD, User._meta.pk.name] + User.REQUIRED_FIELDS |
|
|
|
|
27
|
|
|
)) |
28
|
|
|
|
29
|
|
|
def test_email_change_with_send_activation_email_false(self): |
|
|
|
|
30
|
|
|
user = create_user() |
31
|
|
|
data = {'email': '[email protected]'} |
32
|
|
|
request = self.factory.put(user=user, data=data) |
33
|
|
|
response = self.view(request) |
34
|
|
|
|
35
|
|
|
self.assert_status_equal(response, status.HTTP_200_OK) |
36
|
|
|
user = utils.refresh(user) |
37
|
|
|
self.assertEqual(data['email'], user.email) |
38
|
|
|
self.assertTrue(user.is_active) |
39
|
|
|
|
40
|
|
View Code Duplication |
@override_settings( |
|
|
|
|
41
|
|
|
DJOSER=dict(settings.DJOSER, **{'SEND_ACTIVATION_EMAIL': True}) |
42
|
|
|
) |
|
|
|
|
43
|
|
|
def test_email_change_with_send_activation_email_true(self): |
44
|
|
|
user = create_user() |
45
|
|
|
data = {'email': '[email protected]'} |
46
|
|
|
request = self.factory.put(user=user, data=data) |
47
|
|
|
response = self.view(request) |
48
|
|
|
|
49
|
|
|
self.assert_status_equal(response, status.HTTP_200_OK) |
50
|
|
|
user = utils.refresh(user) |
51
|
|
|
self.assertEqual(data['email'], user.email) |
52
|
|
|
self.assertFalse(user.is_active) |
53
|
|
|
self.assert_emails_in_mailbox(1) |
54
|
|
|
self.assert_email_exists(to=[data['email']]) |
55
|
|
|
|
The coding style of this project requires that you add a docstring to this code element. Below, you find an example for methods:
If you would like to know more about docstrings, we recommend to read PEP-257: Docstring Conventions.