1
1
# Copied from test_middleware.py
2
2
3
3
from django .test import TestCase
4
- from django .test .client import RequestFactory
5
4
from django .test .utils import override_settings
6
5
from django_dynamic_fixture import get
7
6
8
7
from readthedocs .projects .models import Domain , Project
9
8
from readthedocs .proxito .middleware import ProxitoMiddleware
9
+ from readthedocs .rtd_tests .base import RequestFactoryTestMixin
10
10
from readthedocs .rtd_tests .utils import create_user
11
11
12
12
13
13
@override_settings (USE_SUBDOMAIN = True )
14
14
@override_settings (PUBLIC_DOMAIN = 'dev.readthedocs.io' )
15
- class MiddlewareTests (TestCase ):
15
+ class MiddlewareTests (RequestFactoryTestMixin , TestCase ):
16
16
17
17
def setUp (self ):
18
- self .factory = RequestFactory ()
19
18
self .middleware = ProxitoMiddleware ()
20
19
self .url = '/'
21
20
self .owner = create_user (username = 'owner' , password = 'test' )
@@ -32,51 +31,51 @@ def run_middleware(self, request):
32
31
def test_proper_cname (self ):
33
32
domain = 'docs.random.com'
34
33
get (Domain , project = self .pip , domain = domain )
35
- request = self .factory . get (self .url , HTTP_HOST = domain )
34
+ request = self .request (self .url , HTTP_HOST = domain )
36
35
res = self .run_middleware (request )
37
36
self .assertIsNone (res )
38
37
self .assertEqual (request .cname , True )
39
38
self .assertEqual (request .host_project_slug , 'pip' )
40
39
41
40
def test_proper_cname_uppercase (self ):
42
41
get (Domain , project = self .pip , domain = 'docs.random.com' )
43
- request = self .factory . get (self .url , HTTP_HOST = 'docs.RANDOM.COM' )
42
+ request = self .request (self .url , HTTP_HOST = 'docs.RANDOM.COM' )
44
43
self .run_middleware (request )
45
44
self .assertEqual (request .cname , True )
46
45
self .assertEqual (request .host_project_slug , 'pip' )
47
46
48
47
def test_invalid_cname (self ):
49
48
self .assertFalse (Domain .objects .filter (domain = 'my.host.com' ).exists ())
50
- request = self .factory . get (self .url , HTTP_HOST = 'my.host.com' )
49
+ request = self .request (self .url , HTTP_HOST = 'my.host.com' )
51
50
r = self .run_middleware (request )
52
51
# We show the 404 error page
53
52
self .assertContains (r , 'my.host.com' , status_code = 404 )
54
53
55
54
def test_proper_subdomain (self ):
56
- request = self .factory . get (self .url , HTTP_HOST = 'pip.dev.readthedocs.io' )
55
+ request = self .request (self .url , HTTP_HOST = 'pip.dev.readthedocs.io' )
57
56
self .run_middleware (request )
58
57
self .assertEqual (request .subdomain , True )
59
58
self .assertEqual (request .host_project_slug , 'pip' )
60
59
61
60
@override_settings (PUBLIC_DOMAIN = 'foo.bar.readthedocs.io' )
62
61
def test_subdomain_different_length (self ):
63
- request = self .factory . get (
62
+ request = self .request (
64
63
self .url , HTTP_HOST = 'pip.foo.bar.readthedocs.io'
65
64
)
66
65
self .run_middleware (request )
67
66
self .assertEqual (request .subdomain , True )
68
67
self .assertEqual (request .host_project_slug , 'pip' )
69
68
70
69
def test_request_header (self ):
71
- request = self .factory . get (
70
+ request = self .request (
72
71
self .url , HTTP_HOST = 'some.random.com' , HTTP_X_RTD_SLUG = 'pip'
73
72
)
74
73
self .run_middleware (request )
75
74
self .assertEqual (request .rtdheader , True )
76
75
self .assertEqual (request .host_project_slug , 'pip' )
77
76
78
77
def test_request_header_uppercase (self ):
79
- request = self .factory . get (
78
+ request = self .request (
80
79
self .url , HTTP_HOST = 'some.random.com' , HTTP_X_RTD_SLUG = 'PIP'
81
80
)
82
81
self .run_middleware (request )
@@ -86,6 +85,6 @@ def test_request_header_uppercase(self):
86
85
87
86
def test_long_bad_subdomain (self ):
88
87
domain = 'www.pip.dev.readthedocs.io'
89
- request = self .factory . get (self .url , HTTP_HOST = domain )
88
+ request = self .request (self .url , HTTP_HOST = domain )
90
89
res = self .run_middleware (request )
91
90
self .assertEqual (res .status_code , 400 )
0 commit comments