Exemplo n.º 1
0
def test_get_name_from_request():
    req = Request(path='/', method='GET')
    assert get_name_from_request(req) == 'get_root'
    req = Request(path='/the/world', method='PUT')
    assert get_name_from_request(req) == 'put_the_world'

    for invalid_char in INVALID_CHARS:
        assert(
            get_name_from_request(
                Request(
                    path='/bad_{0}_trailing'.format(invalid_char),
                    method='GET'
                )
            ) == 'get_bad_trailing'
        )
Exemplo n.º 2
0
    def prepare(self, records):
        cases = []
        func_names = defaultdict(int)
        endpoint = self.options.get('endpoint', None)
        ignore_all_headers = self.match_options.get('ignore_all_headers', None)
        ignore_headers = self.match_options.get('ignore_headers', None)
        if not ignore_all_headers and ignore_headers:
            ignore_headers = set(map(lambda h: h.upper(), ignore_headers))

        for (req, res) in records:
            func_name = get_name_from_request(req)
            count = func_names[func_name]
            func_names[func_name] = count + 1
            if count > 0:
                func_name = '{}_{}'.format(func_name, count)

            if ignore_all_headers:
                content_type = res.get_header('content-type')
                if content_type:
                    res.headers = {'content-type': content_type}
                else:
                    res.headers = {}
            elif ignore_headers:
                res.headers = {k: v for k, v in res.headers.items() if
                               k.upper() not in ignore_headers}

            case_info = dict(request=req, response=res, func_name=func_name)
            cases.append(case_info)
        return cases
Exemplo n.º 3
0
    def prepare(self, records):
        cases = []
        func_names = defaultdict(int)
        endpoint = self.options.get('endpoint', None)
        ignore_all_headers = self.match_options.get('ignore_all_headers', None)
        ignore_headers = self.match_options.get('ignore_headers', None)
        if not ignore_all_headers and ignore_headers:
            ignore_headers = set(map(lambda h: h.upper(), ignore_headers))

        for (req, res) in records:
            func_name = get_name_from_request(req)
            count = func_names[func_name]
            func_names[func_name] = count + 1
            if count > 0:
                func_name = '{}_{}'.format(func_name, count)

            if ignore_all_headers:
                content_type = res.get_header('content-type')
                if content_type:
                    res.headers = {'content-type': content_type}
                else:
                    res.headers = {}
            elif ignore_headers:
                res.headers = {
                    k: v
                    for k, v in res.headers.items()
                    if k.upper() not in ignore_headers
                }

            case_info = dict(request=req, response=res, func_name=func_name)
            cases.append(case_info)
        return cases
Exemplo n.º 4
0
 def dispatch_request(self, request):
     handler = getattr(self, get_name_from_request(request), None)
     if handler:
         return handler(request)
     else:
         return Response("non route", status=404)
Exemplo n.º 5
0
def test_get_name_from_request():
    req = Request(path='/', method='GET')
    assert get_name_from_request(req) == 'get_root'
    req = Request(path='/the/world', method='PUT')
    assert get_name_from_request(req) == 'put_the_world'
Exemplo n.º 6
0
 def dispatch_request(self, request):
     handler = getattr(self, get_name_from_request(request), None)
     if handler:
         return handler(request)
     else:
         return Response("non route", status=404)