Coverage for docs_src/app_testing/app_b_an/test_main.py: 100%

27 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2025-05-05 00:03 +0000

1from fastapi.testclient import TestClient 1ghijkl

2 

3from .main import app 1ghijkl

4 

5client = TestClient(app) 1ghijkl

6 

7 

8def test_read_item(): 1ghijkl

9 response = client.get("/items/foo", headers={"X-Token": "coneofsilence"}) 1abcdef

10 assert response.status_code == 200 1abcdef

11 assert response.json() == { 1abcdef

12 "id": "foo", 

13 "title": "Foo", 

14 "description": "There goes my hero", 

15 } 

16 

17 

18def test_read_item_bad_token(): 1ghijkl

19 response = client.get("/items/foo", headers={"X-Token": "hailhydra"}) 1abcdef

20 assert response.status_code == 400 1abcdef

21 assert response.json() == {"detail": "Invalid X-Token header"} 1abcdef

22 

23 

24def test_read_nonexistent_item(): 1ghijkl

25 response = client.get("/items/baz", headers={"X-Token": "coneofsilence"}) 1abcdef

26 assert response.status_code == 404 1abcdef

27 assert response.json() == {"detail": "Item not found"} 1abcdef

28 

29 

30def test_create_item(): 1ghijkl

31 response = client.post( 1abcdef

32 "/items/", 

33 headers={"X-Token": "coneofsilence"}, 

34 json={"id": "foobar", "title": "Foo Bar", "description": "The Foo Barters"}, 

35 ) 

36 assert response.status_code == 200 1abcdef

37 assert response.json() == { 1abcdef

38 "id": "foobar", 

39 "title": "Foo Bar", 

40 "description": "The Foo Barters", 

41 } 

42 

43 

44def test_create_item_bad_token(): 1ghijkl

45 response = client.post( 1abcdef

46 "/items/", 

47 headers={"X-Token": "hailhydra"}, 

48 json={"id": "bazz", "title": "Bazz", "description": "Drop the bazz"}, 

49 ) 

50 assert response.status_code == 400 1abcdef

51 assert response.json() == {"detail": "Invalid X-Token header"} 1abcdef

52 

53 

54def test_create_existing_item(): 1ghijkl

55 response = client.post( 1abcdef

56 "/items/", 

57 headers={"X-Token": "coneofsilence"}, 

58 json={ 

59 "id": "foo", 

60 "title": "The Foo ID Stealers", 

61 "description": "There goes my stealer", 

62 }, 

63 ) 

64 assert response.status_code == 409 1abcdef

65 assert response.json() == {"detail": "Item already exists"} 1abcdef