Exemple #1
0
    def test_json(self):
        """
        Test json response
        :return:    void
        """

        helper = ResponseHelper()
        rule = '/' + self.rand_str(20)
        key1 = self.rand_str(20)
        value1 = self.rand_str(20)
        key2 = self.rand_str(20)
        value2 = self.rand_str(20)

        with self.app.test_request_context(rule):
            # Empty json response
            response = helper.json()
            # Check
            self.assert_is_instance(response, Response)
            self.assert_is_instance(response, FlaskResponse)
            self.assert_equal('{}', Encoding.normalize(response.response[0]))

            # Assign
            helper.assign(key1, value1)
            helper.assign(key2, value2)
            # Json response
            response = helper.json()
            # Check
            self.assert_is_instance(response, Response)
            self.assert_is_instance(response, FlaskResponse)
            response_json = Encoding.normalize(json.loads(response.response[0]))
            self.assert_equal(2, len(response_json))
            self.assert_in(key1, response_json)
            self.assert_equal(value1, response_json[key1])
            self.assert_in(key2, response_json)
            self.assert_equal(value2, response_json[key2])
Exemple #2
0
    def test_cookies(self):
        """
        Test cookies
        :return:    void
        """

        helper = ResponseHelper()
        rule = '/' + self.rand_str(20)
        key1 = self.rand_str(20)
        value1 = self.rand_str(20)
        value1_2 = self.rand_str(20)
        key2 = self.rand_str(20)
        value2 = self.rand_str(20)

        with self.app.test_request_context(rule):
            # Empty
            self.assert_equal(0, len(helper._cookie_response.headers))

            # Assign one
            helper.cookie(key1, value1)
            self.assert_equal(1, len(helper._cookie_response.headers))
            self.assert_equal('Set-Cookie', helper._cookie_response.headers[0][0])
            self.assert_in('%s=%s;' % (key1, value1), helper._cookie_response.headers[0][1])

            # Assign second
            helper.cookie(key2, value2)
            self.assert_equal(2, len(helper._cookie_response.headers))
            self.assert_equal('Set-Cookie', helper._cookie_response.headers[1][0])
            self.assert_in('%s=%s;' % (key2, value2), helper._cookie_response.headers[1][1])

            # Override (NOT)
            helper.cookie(key1, value1_2)
            self.assert_equal(3, len(helper._cookie_response.headers))
            self.assert_equal('Set-Cookie', helper._cookie_response.headers[2][0])
            self.assert_in('%s=%s;' % (key1, value1_2), helper._cookie_response.headers[2][1])

            # Delete
            helper.delete_cookie(key2)
            self.assert_equal(4, len(helper._cookie_response.headers))
            self.assert_equal('Set-Cookie', helper._cookie_response.headers[3][0])
            self.assert_in('%s=;' % key2, helper._cookie_response.headers[3][1])

            # Check responses
            responses = [
                helper.raw(''),
                helper.render(self.template),
                helper.json(),
                helper.redirect('/'),
                helper.file(os.path.dirname(self.template_file), os.path.basename(self.template_file))
            ]
            for response in responses:
                cookie_headers = list(filter(lambda header: isinstance(header, tuple) and header[0] == 'Set-Cookie', response.headers))

                self.assert_equal(4, len(cookie_headers))
                self.assert_in('%s=%s;' % (key1, value1), cookie_headers[0][1])
                self.assert_in('%s=%s;' % (key2, value2), cookie_headers[1][1])
                self.assert_in('%s=%s;' % (key1, value1_2), cookie_headers[2][1])
                self.assert_in('%s=;' % key2, cookie_headers[3][1])
            responses[4].close()
Exemple #3
0
    def test_headers(self):
        """
        Test headers
        :return:    void
        """

        helper = ResponseHelper()
        rule = '/' + self.rand_str(20)
        key1 = self.rand_str(20)
        value1 = self.rand_str(20)
        value1_2 = self.rand_str(20)
        key2 = self.rand_str(20)
        value2 = self.rand_str(20)

        # Empty
        self.assert_equal(0, len(helper.headers))

        # Assign one
        helper.header(key1, value1)
        self.assert_equal(1, len(helper.headers))
        self.assert_in(key1, helper.headers)
        self.assert_equal(value1, helper.headers[key1])

        # Assign second
        helper.header(key2, value2)
        self.assert_equal(2, len(helper.headers))
        self.assert_in(key2, helper.headers)
        self.assert_equal(value2, helper.headers[key2])

        # Override
        helper.header(key1, value1_2)
        self.assert_equal(2, len(helper.headers))
        self.assert_in(key1, helper.headers)
        self.assert_equal(value1_2, helper.headers[key1])

        # Check responses
        with self.app.test_request_context(rule):
            responses = [
                helper.raw(''),
                helper.render(self.template),
                helper.json(),
                helper.redirect('/'),
                helper.file(os.path.dirname(self.template_file), os.path.basename(self.template_file))
            ]
            for response in responses:
                self.assert_in(key1, response.headers)
                self.assert_equal(value1_2, response.headers[key1])
                self.assert_in(key2, response.headers)
                self.assert_equal(value2, response.headers[key2])
            responses[4].close()
Exemple #4
0
    def test_status(self):
        """
        Test status
        :return:    void
        """

        helper = ResponseHelper()
        rule = '/' + self.rand_str(20)
        default = 200
        default_redirect = 302
        status = 105

        with self.app.test_request_context(rule):
            # None
            self.assert_is_none(helper._status)

            # Check responses
            self.assert_equal(default, helper.raw('').status_code)
            self.assert_equal(default, helper.render(self.template).status_code)
            self.assert_equal(default, helper.json().status_code)
            self.assert_equal(default_redirect, helper.redirect('/').status_code)
            file_response = helper.file(os.path.dirname(self.template_file), os.path.basename(self.template_file))
            self.assert_equal(default, file_response.status_code)
            file_response.close()

            # Set & check
            helper.status(status)
            self.assert_equal(status, helper._status)

            # Check responses
            self.assert_equal(status, helper.raw('').status_code)
            self.assert_equal(status, helper.render(self.template).status_code)
            self.assert_equal(status, helper.json().status_code)
            self.assert_equal(status, helper.redirect('/').status_code)
            file_response = helper.file(os.path.dirname(self.template_file), os.path.basename(self.template_file))
            self.assert_equal(status, file_response.status_code)
            file_response.close()