Laurenc Kaefer commited on
Commit
d796102
·
1 Parent(s): 0becea1

ADD: tests for authentication

Browse files
Files changed (1) hide show
  1. backend/test_main.py +33 -3
backend/test_main.py CHANGED
@@ -1,7 +1,25 @@
 
1
  import pytest
 
2
  from .main import api
3
 
4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  @pytest.mark.parametrize(
6
  "input, status_code, error_msg",
7
  [
@@ -18,8 +36,14 @@ from .main import api
18
  ],
19
  )
20
  def test_extract_text(input, status_code, error_msg):
 
 
 
 
21
  client = api.test_client()
22
- response = client.post("/extract-text", json=input)
 
 
23
 
24
  assert response.status_code == status_code
25
  assert response.get_json() == {"error": error_msg}
@@ -37,9 +61,15 @@ def test_extract_text(input, status_code, error_msg):
37
  ({"text": "This is a test article to summarize."}, 200, "summary", "test"),
38
  ],
39
  )
40
- def test_summarize_text(input, status_code, msg_type, msg):
 
 
 
 
41
  client = api.test_client()
42
- response = client.post("/summarize-text", json=input)
 
 
43
  data = response.get_json()
44
 
45
  assert response.status_code == status_code
 
1
+ import os
2
  import pytest
3
+ from dotenv import load_dotenv
4
  from .main import api
5
 
6
 
7
+ def test_authorization_missing_env_var(monkeypatch):
8
+ # load env
9
+ load_dotenv()
10
+
11
+ # missing env var
12
+ if "API_KEY" in os.environ:
13
+ monkeypatch.delenv("API_KEY")
14
+
15
+ # call endpoint without API_KEY
16
+ client = api.test_client()
17
+ headers = {"Authorization": f"Bearer dummy_api_key"}
18
+ response = client.post("/summarize-text", headers=headers, json={"key": "value"})
19
+ assert response.status_code == 401
20
+ assert response.status == "401 UNAUTHORIZED"
21
+
22
+
23
  @pytest.mark.parametrize(
24
  "input, status_code, error_msg",
25
  [
 
36
  ],
37
  )
38
  def test_extract_text(input, status_code, error_msg):
39
+ # load env
40
+ load_dotenv()
41
+
42
+ # call endpoint extract-text
43
  client = api.test_client()
44
+ API_KEY = os.getenv("API_KEY")
45
+ headers = {"Authorization": f"Bearer {API_KEY}"}
46
+ response = client.post("/extract-text", headers=headers, json=input)
47
 
48
  assert response.status_code == status_code
49
  assert response.get_json() == {"error": error_msg}
 
61
  ({"text": "This is a test article to summarize."}, 200, "summary", "test"),
62
  ],
63
  )
64
+ def test_summarize_text(input, status_code, msg_type, msg, monkeypatch):
65
+ # load env
66
+ load_dotenv()
67
+
68
+ # call endpoint summarize-text
69
  client = api.test_client()
70
+ API_KEY = os.getenv("API_KEY")
71
+ headers = {"Authorization": f"Bearer {API_KEY}"}
72
+ response = client.post("/summarize-text", headers=headers, json=input)
73
  data = response.get_json()
74
 
75
  assert response.status_code == status_code