11
11
import pytest
12
12
13
13
from django .db import connection , transaction
14
+ from django .contrib .sessions .backends .base import SessionBase
14
15
from django .conf import settings as real_settings
15
16
from django .core import mail
16
17
from django .test .client import Client , RequestFactory
@@ -33,25 +34,70 @@ def test_admin_client(admin_client):
33
34
assert force_text (resp .content ) == 'You are an admin'
34
35
35
36
37
+ @pytest .mark .django_db
38
+ def test_user_client (user_client ):
39
+ assert isinstance (user_client , Client )
40
+ resp = user_client .get ('/admin-required/' )
41
+ assert force_text (resp .content ) == 'Access denied'
42
+
43
+
36
44
def test_admin_client_no_db_marker (admin_client ):
37
45
assert isinstance (admin_client , Client )
38
46
resp = admin_client .get ('/admin-required/' )
39
47
assert force_text (resp .content ) == 'You are an admin'
40
48
41
49
50
+ def test_user_client_no_db_marker (user_client ):
51
+ assert isinstance (user_client , Client )
52
+ resp = user_client .get ('/admin-required/' )
53
+ assert force_text (resp .content ) == 'Access denied'
54
+
55
+
42
56
@pytest .mark .django_db
43
57
def test_admin_user (admin_user , django_user_model ):
44
58
assert isinstance (admin_user , django_user_model )
45
59
46
60
61
+ @pytest .mark .django_db
62
+ def test_django_user (django_user , django_user_model ):
63
+ assert isinstance (django_user , django_user_model )
64
+
65
+
47
66
def test_admin_user_no_db_marker (admin_user , django_user_model ):
48
67
assert isinstance (admin_user , django_user_model )
49
68
50
69
70
+ def test_django_user_no_db_marker (django_user , django_user_model ):
71
+ assert isinstance (django_user , django_user_model )
72
+
73
+
51
74
def test_rf (rf ):
52
75
assert isinstance (rf , RequestFactory )
53
76
54
77
78
+ def test_rf_user (rf_user , django_user_model ):
79
+ assert isinstance (rf_user , RequestFactory )
80
+ request = rf_user .get ('/admin-required/' )
81
+ assert isinstance (request .user , django_user_model )
82
+ assert isinstance (request .session , SessionBase )
83
+
84
+
85
+ def test_rf_admin (rf_admin , django_user_model ):
86
+ assert isinstance (rf_admin , RequestFactory )
87
+ request = rf_admin .get ('/admin-required/' )
88
+ assert isinstance (request .user , django_user_model )
89
+ assert isinstance (request .session , SessionBase )
90
+
91
+
92
+ def test_rf_unauth (rf_unauth , django_user_model ):
93
+ assert isinstance (rf_unauth , RequestFactory )
94
+ request = rf_unauth .get ('/admin-required/' )
95
+ assert hasattr (request , 'user' )
96
+ # AnonymousUser is a plain-object (duck-typed)
97
+ assert not isinstance (request .user , django_user_model )
98
+ assert isinstance (request .session , SessionBase )
99
+
100
+
55
101
@pytest .mark .django_db
56
102
def test_django_assert_num_queries_db (django_assert_num_queries ):
57
103
with django_assert_num_queries (3 ):
0 commit comments