Example #1
0
    def parse(self, response):
        """Parse WebTest response.

        :param response: WebTest response object
        """
        content_type = ''
        for k, v in response.headers.iteritems():
            if k == 'Content-Type':
                content_type = v

        status = response.status_code
        params = ''

        response_body = ''
        if to_unicode(response.body) != '':
            response_body = json.dumps(response.json_body, indent=2)

        request = response.request
        if to_unicode(request.body) != '':
            params = json.dumps(request.json_body, indent=2)

        ret = {
            'status_code': status,
            'response_content_type': content_type,
            'response_body': response_body,
            'target_url': '{0}://{1}'.format(request.scheme, request.host),
            'request': '{0} {1}'.format(request.method, request.path_info),
            'params': params
        }

        return ret
Example #2
0
    def parse(self, response):
        """Parse WebTest response.

        :param response: WebTest response object
        """
        content_type = ''
        for k, v in response.headers.iteritems():
            if k == 'Content-Type':
                content_type = v

        status = response.status_code
        params = ''

        response_body = ''
        if to_unicode(response.body) != '':
            response_body = json.dumps(response.json_body, indent=2)

        request = response.request
        if to_unicode(request.body) != '':
            params = json.dumps(request.json_body, indent=2)

        ret = {
            'status_code': status,
            'response_content_type': content_type,
            'response_body': response_body,
            'target_url': '{0}://{1}'.format(request.scheme, request.host),
            'request': '{0} {1}'.format(request.method, request.path_info),
            'params': params
        }

        return ret
Example #3
0
    def create_document(self, output):
        """Read template file and render file.

        :param output: Output file path.
        """
        if not os.path.exists(self.template_path):
            raise IOError('Template file not found.')

        documents = []
        with open(self.template_path, 'rb') as f:
            data = f.read()
            template = Template(to_unicode(data))
            indent_targets = ['params', 'response_body']
            for v in self.vars:
                if self.template_path.endswith('.rst'):
                    for k in indent_targets:
                        lines = v[k].split('\n')
                        ret = []
                        for i, l in enumerate(lines):
                            if i > 0:
                                ret.append('  {0}'.format(l).rstrip())
                            else:
                                ret.append(l)
                        v[k] = '\n'.join(ret)

                document = template.substitute(v)
                documents.append(document)

        with open(output, 'w') as f:
            f.write('\n'.join(documents))
Example #4
0
    def create_document(self, output):
        """Read template file and render file.

        :param output: Output file path.
        """
        if not os.path.exists(self.template_path):
            raise IOError('Template file not found.')

        documents = []
        with open(self.template_path, 'rb') as f:
            data = f.read()
            template = Template(to_unicode(data))
            indent_targets = ['params', 'response_body']
            for v in self.vars:
                if self.template_path.endswith('.rst'):
                    for k in indent_targets:
                        lines = v[k].split('\n')
                        ret = []
                        for i, l in enumerate(lines):
                            if i > 0:
                                ret.append('  {0}'.format(l).rstrip())
                            else:
                                ret.append(l)
                        v[k] = '\n'.join(ret)

                document = template.substitute(v)
                documents.append(document)

        with open(output, 'w') as f:
            f.write('\n'.join(documents))
Example #5
0
    def parse(self, response):
        """Parse requests response.

        :param response: requests response object
        """
        content_type = response.headers['Content-Type']
        status = response.status_code
        params = ''

        response_body = ''
        if to_unicode(response.content) != '':
            response_body = json.loads(to_unicode(response.content))
            #: Format indent.
            #: {'foo': 'bar'}
            #:   will format to
            #: {
            #:   'foo': 'bar'
            #: }
            response_body = json.dumps(response_body, indent=2)

        request = response.request
        if request.body != '':
            data = parse_qsl(request.body)
            request_params = {}
            for v in data:
                #: v[0] = parameter key
                #: v[1] = parameter value
                #: ex:
                #:   user_id=foo&email=foo%40example.com
                #: v[0] = user_id
                #: v[1] = foo
                request_params[v[0]] = v[1]
            params = json.dumps(request_params, indent=2)

        ret = {
            'status_code': status,
            'response_content_type': content_type,
            'response_body': response_body,
            'target_url': request.url,
            'request': '{0} {1}'.format(request.method, request.path_url),
            'params': params
        }

        return ret
Example #6
0
    def parse(self, response):
        """Parse requests response.

        :param response: requests response object
        """
        content_type = response.headers['Content-Type']
        status = response.status_code
        params = ''

        response_body = ''
        if to_unicode(response.content) != '':
            response_body = json.loads(to_unicode(response.content))
            #: Format indent.
            #: {'foo': 'bar'}
            #:   will format to
            #: {
            #:   'foo': 'bar'
            #: }
            response_body = json.dumps(response_body, indent=2)

        request = response.request
        if request.body != '':
            data = parse_qsl(request.body)
            request_params = {}
            for v in data:
                #: v[0] = parameter key
                #: v[1] = parameter value
                #: ex:
                #:   user_id=foo&email=foo%40example.com
                #: v[0] = user_id
                #: v[1] = foo
                request_params[v[0]] = v[1]
            params = json.dumps(request_params, indent=2)

        ret = {
            'status_code': status,
            'response_content_type': content_type,
            'response_body': response_body,
            'target_url': request.url,
            'request': '{0} {1}'.format(request.method, request.path_url),
            'params': params
        }

        return ret