File: test_expose_headers.py

package info (click to toggle)
python-flask-cors 3.0.10-2%2Bdeb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-proposed-updates
  • size: 548 kB
  • sloc: python: 1,791; makefile: 138; sh: 17
file content (44 lines) | stat: -rw-r--r-- 1,335 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# -*- coding: utf-8 -*-
"""
    test
    ~~~~

    Flask-Cors tests module
"""

from ..base_test import FlaskCorsTestCase
from flask import Flask

from flask_cors import *
from flask_cors.core import *


class ExposeHeadersTestCase(FlaskCorsTestCase):
    def setUp(self):
        self.app = Flask(__name__)

        @self.app.route('/test_default')
        @cross_origin()
        def test_default():
            return 'Welcome!'

        @self.app.route('/test_override')
        @cross_origin(expose_headers=["X-My-Custom-Header", "X-Another-Custom-Header"])
        def test_override():
            return 'Welcome!'

    def test_default(self):
        for resp in self.iter_responses('/test_default', origin='www.example.com'):
            self.assertTrue(resp.headers.get(ACL_EXPOSE_HEADERS) is None,
                            "No Access-Control-Expose-Headers by default")

    def test_override(self):
        ''' The specified headers should be returned in the ACL_EXPOSE_HEADERS
            and correctly serialized if it is a list.
        '''
        for resp in self.iter_responses('/test_override', origin='www.example.com'):
            self.assertEqual(resp.headers.get(ACL_EXPOSE_HEADERS),
                             'X-Another-Custom-Header, X-My-Custom-Header')

if __name__ == "__main__":
    unittest.main()