Coverage for tests/test_tutorial/test_cors/test_tutorial001.py: 100%
19 statements
« prev ^ index » next coverage.py v7.6.1, created at 2024-08-08 03:53 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2024-08-08 03:53 +0000
1from fastapi.testclient import TestClient 1abcde
3from docs_src.cors.tutorial001 import app 1abcde
6def test_cors(): 1abcde
7 client = TestClient(app) 1abcde
8 # Test pre-flight response
9 headers = { 1abcde
10 "Origin": "https://localhost.tiangolo.com",
11 "Access-Control-Request-Method": "GET",
12 "Access-Control-Request-Headers": "X-Example",
13 }
14 response = client.options("/", headers=headers) 1abcde
15 assert response.status_code == 200, response.text 1abcde
16 assert response.text == "OK" 1abcde
17 assert ( 1abcde
18 response.headers["access-control-allow-origin"]
19 == "https://localhost.tiangolo.com"
20 )
21 assert response.headers["access-control-allow-headers"] == "X-Example" 1abcde
23 # Test standard response
24 headers = {"Origin": "https://localhost.tiangolo.com"} 1abcde
25 response = client.get("/", headers=headers) 1abcde
26 assert response.status_code == 200, response.text 1abcde
27 assert response.json() == {"message": "Hello World"} 1abcde
28 assert ( 1abcde
29 response.headers["access-control-allow-origin"]
30 == "https://localhost.tiangolo.com"
31 )
33 # Test non-CORS response
34 response = client.get("/") 1abcde
35 assert response.status_code == 200, response.text 1abcde
36 assert response.json() == {"message": "Hello World"} 1abcde
37 assert "access-control-allow-origin" not in response.headers 1abcde