Ejemplo n.º 1
0
 def test_route_tuple(self):
     """
     Routes can be specified as tuples.
     """
     interceptor = route.router((u'/foo', route.GET, [tracer('a')]))
     context = empty_context.set(REQUEST, basic_request(uri=u'/foo'))
     self.assertThat(
         execute(context, [interceptor]),
         succeeded(Traced(Equals(v(('enter', 'a'), ('leave', 'a'))))))
Ejemplo n.º 2
0
 def test_after(self):
     """
     Interceptor only has a leave function.
     """
     interceptors = [tracer('a'), after(tracing('leave', 'b')), tracer('c')]
     self.assertThat(
         execute(empty_context, interceptors),
         succeeded(
             Traced(
                 Equals(
                     v(('enter', 'a'), ('enter', 'c'), ('leave', 'c'),
                       ('leave', 'b'), ('leave', 'a'))))))
Ejemplo n.º 3
0
 def test_path_specificity(self):
     """
     Ensure that more specific routes have a higher priority than less
     specific routes.
     """
     interceptor = route.router(
         route.route(u'/bar', route.GET, [tracer('b')], u'b'),
         route.route(u'/bar/:id/*rest', route.GET, [tracer('d')], u'd'),
         route.route(u'/foo', route.GET, [tracer('a')], u'a'),
         route.route(u'/bar/:id', route.GET, [tracer('c')], u'c'))
     req = lambda uri: execute(
         empty_context.set(REQUEST, basic_request(uri=uri)), [interceptor])
     self.assertThat(
         req(u'/foo'),
         succeeded(Traced(Equals(v(('enter', 'a'), ('leave', 'a'))))))
     self.assertThat(
         req(u'/bar'),
         succeeded(Traced(Equals(v(('enter', 'b'), ('leave', 'b'))))))
     self.assertThat(
         req(u'/bar/1'),
         succeeded(Traced(Equals(v(('enter', 'c'), ('leave', 'c'))))))
     self.assertThat(
         req(u'/bar/1/pa/th'),
         succeeded(Traced(Equals(v(('enter', 'd'), ('leave', 'd'))))))
Ejemplo n.º 4
0
    def test_error_handler(self):
        """
        Interceptor only has an error function.
        """
        def _swallow(marker):
            return lambda context, error: tracing('error', (
                marker, 'from', error.failure.value.source))(context)

        interceptors = [
            tracer('a'),
            error_handler(_swallow('b')),
            thrower('c'),
            tracer('d')
        ]
        self.assertThat(
            execute(empty_context, interceptors),
            succeeded(
                Traced(
                    Equals(
                        v(('enter', 'a'), ('error', ('b', 'from', 'c')),
                          ('leave', 'a'))))))