Пример #1
0
    def test_get_context_with_no_valid_context(self):
        f = Firewall(FirewallMap())

        rq = BaseHandler(Application(), HTTPRequest("GET", "/", connection=get_dummy_connection()))

        with self.assertRaises(AccessDeniedException):
            f.onRequest(Event({
                'request': rq.request,
                'request_handler': rq
            }))
Пример #2
0
    def test_run(self):

        app = Application()
        request = HTTPRequest("GET", "/", connection=get_dummy_connection())

        handler = RequestHandler(app, request)
        handler.run = Run()

        shutil.rmtree("/tmp/python-element/", ignore_errors=True)

        path = "/tmp/python-element//%s" % handler.run.id

        os.makedirs(path)

        p = PyCallgraphCollector("/tmp/python-element/")
        p.on_request(handler, handler.run)

        self.assertIsInstance(handler.run, Run)

        p.on_terminate(handler, handler.run)

        self.assertTrue(os.path.isfile("/tmp/python-element/%s/pycallgraph.dot" % handler.run.id))
Пример #3
0
def get_default_handler():
    return TestHandler(Application(), HTTPRequest("GET", "/", connection=get_dummy_connection()))
Пример #4
0
    def test_get_context_with_valid_listeners(self):
        c = SecurityContext()
        f = Firewall(FirewallMap([
            (re.compile("/admin/.*"), ([
                AnonymousAuthenticationHandler('key', c),
            ], None)),
        ]))

        rq = BaseHandler(Application(), HTTPRequest("GET", "/admin/dashboard", connection=get_dummy_connection()))

        e = Event({
            'request': rq.request,
            'request_handler': rq
        })
        f.onRequest(e)

        self.assertIsNotNone(c.token)
Пример #5
0
    def test_get_context_with_empty_listeners(self):
        f = Firewall(FirewallMap([
            (re.compile("/admin/.*"), ([], None)),
        ]))

        rq = BaseHandler(Application(), HTTPRequest("GET", "/admin/dashboard", connection=get_dummy_connection()))

        with self.assertRaises(AccessDeniedException):
            f.onRequest(Event({
                'request': rq.request,
                'request_handler': rq
            }))
Пример #6
0
    def test_map(self):
        map = FirewallMap([
            (re.compile("/admin/.*"), ([], None)),
            (re.compile("/blog/.*"), ([], None))
        ])

        paths = [
            ('/admin/dashboard', ([], None)),
            ('/', ([], None)),
            ('/blog/2012', ([], None))
        ]

        for path, expected in paths:
            self.assertEquals(expected, map.get_context(HTTPRequest("GET", path, connection=get_dummy_connection())))
Пример #7
0
    def test_match(self):
        map = AccessMap([
            (re.compile("/admin/.*"), 'admin'),
            (re.compile("/blog/.*"), ['anonymous'])
        ])

        paths = [
            ('/admin/dashboard', ['admin']),
            ('/', None),
            ('/blog/2012', ['anonymous'])
        ]

        for path, expected in paths:
            self.assertEquals(expected, map.get_pattern(HTTPRequest("GET", path, connection=get_dummy_connection())))
Пример #8
0
    def test_on_request(self):

        app = Application()
        request = HTTPRequest('POST', '/collector?hello=world', body=b"foo=bar&bar=foo", headers={'Content-Type': 'application/x-www-form-urlencoded'}, connection=get_dummy_connection())

        handler = RequestHandler(app, request)
        handler.run = Run()

        self.collector.on_request(handler, handler.run)

        self.assertEquals({
            'body_arguments': {},
            'cookies': '',
            'headers': {'Content-Type': 'application/x-www-form-urlencoded'},
            'host': '127.0.0.1',
            'method': 'POST',
            'path': '/collector',
            'protocol': 'http',
            'query': 'hello=world',
            'body': 'foo=bar&bar=foo',
            'query_arguments': {'hello': ['world']},
            'remote_ip': '127.0.0.1',
            'uri': '/collector?hello=world',
            'version': 'HTTP/1.0',
            'controller': {'class': False, 'file': False, 'line': False, 'method': False},
            'route': False,
            'status_code': False,
        }, handler.run.get_metric('request'))
Пример #9
0
 def setUp(self):
     self.handler = RequestHandler(Application(), HTTPRequest('GET', '/', connection=get_dummy_connection()))
     self.handler.run = Run()
     self.collector = RequestCollector()