OXIESEC PANEL
- Current Dir:
/
/
usr
/
lib
/
python3
/
dist-packages
/
twisted
/
web
/
test
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
03/31/2022 06:22:39 AM
rwxr-xr-x
📄
__init__.py
108 bytes
09/08/2017 10:38:36 AM
rw-r--r--
📁
__pycache__
-
03/31/2022 06:22:40 AM
rwxr-xr-x
📄
_util.py
2.51 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
injectionhelpers.py
5.5 KB
03/22/2022 11:03:56 AM
rw-r--r--
📄
requesthelper.py
10.6 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_agent.py
113.19 KB
03/22/2022 11:03:56 AM
rw-r--r--
📄
test_cgi.py
13.29 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_client.py
1.34 KB
09/08/2017 10:38:35 AM
rw-r--r--
📄
test_distrib.py
16.02 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_domhelpers.py
10.84 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_error.py
15.83 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_flatten.py
17.83 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_html.py
1.23 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_http.py
122.6 KB
03/22/2022 11:03:56 AM
rw-r--r--
📄
test_http2.py
105.98 KB
03/22/2022 11:03:56 AM
rw-r--r--
📄
test_http_headers.py
19.91 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_httpauth.py
22.75 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_newclient.py
102.47 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_proxy.py
19.62 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_resource.py
8.02 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_script.py
3.7 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_stan.py
5.53 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_static.py
62.22 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_tap.py
10.34 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_template.py
24.99 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_util.py
12.29 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_vhost.py
7.22 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_web.py
55.24 KB
03/22/2022 11:03:56 AM
rw-r--r--
📄
test_web__responses.py
877 bytes
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_webclient.py
57.45 KB
03/22/2022 11:03:56 AM
rw-r--r--
📄
test_wsgi.py
73.06 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_xml.py
41.36 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
test_xmlrpc.py
28.24 KB
09/08/2017 10:38:36 AM
rw-r--r--
Editing: test_vhost.py
Close
# Copyright (c) Twisted Matrix Laboratories. # See LICENSE for details. """ Tests for L{twisted.web.vhost}. """ from __future__ import absolute_import, division from twisted.internet.defer import gatherResults from twisted.trial.unittest import TestCase from twisted.web.http import NOT_FOUND from twisted.web.resource import NoResource from twisted.web.static import Data from twisted.web.server import Site from twisted.web.vhost import (_HostResource, NameVirtualHost, VHostMonsterResource) from twisted.web.test.test_web import DummyRequest from twisted.web.test._util import _render class HostResourceTests(TestCase): """ Tests for L{_HostResource}. """ def test_getChild(self): """ L{_HostResource.getChild} returns the proper I{Resource} for the vhost embedded in the URL. Verify that returning the proper I{Resource} required changing the I{Host} in the header. """ bazroot = Data(b'root data', "") bazuri = Data(b'uri data', "") baztest = Data(b'test data', "") bazuri.putChild(b'test', baztest) bazroot.putChild(b'uri', bazuri) hr = _HostResource() root = NameVirtualHost() root.default = Data(b'default data', "") root.addHost(b'baz.com', bazroot) request = DummyRequest([b'uri', b'test']) request.prepath = [b'bar', b'http', b'baz.com'] request.site = Site(root) request.isSecure = lambda: False request.host = b'' step = hr.getChild(b'baz.com', request) # Consumes rest of path self.assertIsInstance(step, Data) request = DummyRequest([b'uri', b'test']) step = root.getChild(b'uri', request) self.assertIsInstance(step, NoResource) class NameVirtualHostTests(TestCase): """ Tests for L{NameVirtualHost}. """ def test_renderWithoutHost(self): """ L{NameVirtualHost.render} returns the result of rendering the instance's C{default} if it is not L{None} and there is no I{Host} header in the request. """ virtualHostResource = NameVirtualHost() virtualHostResource.default = Data(b"correct result", "") request = DummyRequest(['']) self.assertEqual( virtualHostResource.render(request), b"correct result") def test_renderWithoutHostNoDefault(self): """ L{NameVirtualHost.render} returns a response with a status of I{NOT FOUND} if the instance's C{default} is L{None} and there is no I{Host} header in the request. """ virtualHostResource = NameVirtualHost() request = DummyRequest(['']) d = _render(virtualHostResource, request) def cbRendered(ignored): self.assertEqual(request.responseCode, NOT_FOUND) d.addCallback(cbRendered) return d def test_renderWithHost(self): """ L{NameVirtualHost.render} returns the result of rendering the resource which is the value in the instance's C{host} dictionary corresponding to the key indicated by the value of the I{Host} header in the request. """ virtualHostResource = NameVirtualHost() virtualHostResource.addHost(b'example.org', Data(b"winner", "")) request = DummyRequest([b'']) request.requestHeaders.addRawHeader(b'host', b'example.org') d = _render(virtualHostResource, request) def cbRendered(ignored, request): self.assertEqual(b''.join(request.written), b"winner") d.addCallback(cbRendered, request) # The port portion of the Host header should not be considered. requestWithPort = DummyRequest([b'']) requestWithPort.requestHeaders.addRawHeader(b'host', b'example.org:8000') dWithPort = _render(virtualHostResource, requestWithPort) def cbRendered(ignored, requestWithPort): self.assertEqual(b''.join(requestWithPort.written), b"winner") dWithPort.addCallback(cbRendered, requestWithPort) return gatherResults([d, dWithPort]) def test_renderWithUnknownHost(self): """ L{NameVirtualHost.render} returns the result of rendering the instance's C{default} if it is not L{None} and there is no host matching the value of the I{Host} header in the request. """ virtualHostResource = NameVirtualHost() virtualHostResource.default = Data(b"correct data", "") request = DummyRequest([b'']) request.requestHeaders.addRawHeader(b'host', b'example.com') d = _render(virtualHostResource, request) def cbRendered(ignored): self.assertEqual(b''.join(request.written), b"correct data") d.addCallback(cbRendered) return d def test_renderWithUnknownHostNoDefault(self): """ L{NameVirtualHost.render} returns a response with a status of I{NOT FOUND} if the instance's C{default} is L{None} and there is no host matching the value of the I{Host} header in the request. """ virtualHostResource = NameVirtualHost() request = DummyRequest(['']) request.requestHeaders.addRawHeader(b'host', b'example.com') d = _render(virtualHostResource, request) def cbRendered(ignored): self.assertEqual(request.responseCode, NOT_FOUND) d.addCallback(cbRendered) return d def test_getChild(self): """ L{NameVirtualHost.getChild} returns correct I{Resource} based off the header and modifies I{Request} to ensure proper prepath and postpath are set. """ virtualHostResource = NameVirtualHost() leafResource = Data(b"leaf data", "") leafResource.isLeaf = True normResource = Data(b"norm data", "") virtualHostResource.addHost(b'leaf.example.org', leafResource) virtualHostResource.addHost(b'norm.example.org', normResource) request = DummyRequest([]) request.requestHeaders.addRawHeader(b'host', b'norm.example.org') request.prepath = [b''] self.assertIsInstance(virtualHostResource.getChild(b'', request), NoResource) self.assertEqual(request.prepath, [b'']) self.assertEqual(request.postpath, []) request = DummyRequest([]) request.requestHeaders.addRawHeader(b'host', b'leaf.example.org') request.prepath = [b''] self.assertIsInstance(virtualHostResource.getChild(b'', request), Data) self.assertEqual(request.prepath, []) self.assertEqual(request.postpath, [b'']) class VHostMonsterResourceTests(TestCase): """ Tests for L{VHostMonsterResource}. """ def test_getChild(self): """ L{VHostMonsterResource.getChild} returns I{_HostResource} and modifies I{Request} with correct L{Request.isSecure}. """ vhm = VHostMonsterResource() request = DummyRequest([]) self.assertIsInstance(vhm.getChild(b'http', request), _HostResource) self.assertFalse(request.isSecure()) request = DummyRequest([]) self.assertIsInstance(vhm.getChild(b'https', request), _HostResource) self.assertTrue(request.isSecure())