2828)
2929FAKE_NOTEBOOK = "my-notebook"
3030
31- client = TestClient (app )
31+
32+ @pytest .fixture ()
33+ def test_client ():
34+ return TestClient (app )
3235
3336
3437@pytest .fixture ()
@@ -131,30 +134,31 @@ def test_complete_notebook_name_from_form(mocker, notebook_name, username, compl
131134 assert complete_notebook_name_from_form (notebook_name = notebook_name , username = username ) == complete_notebook_name
132135
133136
134- def test_healthz ():
135- response = client .get ("api/healthz" )
137+ def test_healthz (test_client ):
138+ response = test_client .get ("api/healthz" )
136139 assert response .status_code == 200
137140 assert response .json ()["status" ] == "Seems healthy"
138141
139142
140- def test_root ():
141- response = client .get ("/" )
143+ def test_root (test_client ):
144+ response = test_client .get ("/" )
142145 assert response .status_code == 200
143146 assert response .template .name == "index.html"
144147 assert response .context ["kube_cluster_name" ] is None
145148
146149
147- def test_login (validate_kube_token_mock ):
148- response = client .post ("api/login/" , data = {"kube_token" : FAKE_OIDC_TOKEN }, allow_redirects = False )
150+ def test_login (validate_kube_token_mock , test_client ):
151+ response = test_client .post ("api/login/" , data = {"kube_token" : FAKE_OIDC_TOKEN }, follow_redirects = False )
149152 assert response .status_code == 303
150153 assert response .headers ["location" ] == "/api/notebooks/"
151154 # We do not send the cookie when connecting to Notebooks (non /api)
152- assert response .cookies .get_dict ( path = "/api" )[ "kube_token" ] == FAKE_OIDC_TOKEN
155+ assert response .cookies .get ( name = "kube_token" , path = "/api" ) == FAKE_OIDC_TOKEN
153156
154157
155158def test_notebooks (mocker , validate_kube_token_mock ):
156159 helm = mocker .patch ("notebook_on_kube.main.helm" , return_value = "{}" )
157- response = client .get ("api/notebooks/" , cookies = {"kube_token" : FAKE_OIDC_TOKEN })
160+ client = TestClient (app = app , cookies = {"kube_token" : FAKE_OIDC_TOKEN })
161+ response = client .get ("api/notebooks/" )
158162 helm .assert_called_once_with (
159163 body = ["list" , "--filter" , f"^nok-{ FAKE_USERNAME } -.+$" , "--all" , "--output" , "json" ], kube_token = FAKE_OIDC_TOKEN
160164 )
@@ -177,9 +181,8 @@ def test_delete_notebook(mocker, validate_kube_token_mock, existing, helm_list_o
177181 helm_list_call = mocker .call (
178182 body = ["list" , "--filter" , f"^{ FAKE_NOTEBOOK } $" , "--all" , "--output" , "json" ], kube_token = FAKE_OIDC_TOKEN
179183 )
180- response = client .post (
181- f"api/delete_notebook/{ FAKE_NOTEBOOK } " , cookies = {"kube_token" : FAKE_OIDC_TOKEN }, allow_redirects = False
182- )
184+ client = TestClient (app = app , cookies = {"kube_token" : FAKE_OIDC_TOKEN })
185+ response = client .post (f"api/delete_notebook/{ FAKE_NOTEBOOK } " , follow_redirects = False )
183186 assert response .status_code == status_code
184187 if existing :
185188 assert response .headers ["location" ] == "/api/notebooks/"
@@ -195,7 +198,8 @@ def test_delete_notebook(mocker, validate_kube_token_mock, existing, helm_list_o
195198def test_notebook_events (mocker , validate_kube_token_mock , event ):
196199 mocker .patch ("notebook_on_kube.main.notebook_exists" , return_value = True )
197200 kubectl = mocker .patch ("notebook_on_kube.main.kubectl" , return_value = event )
198- response = client .get (f"api/notebook_events/{ FAKE_NOTEBOOK } " , cookies = {"kube_token" : FAKE_OIDC_TOKEN })
201+ client = TestClient (app = app , cookies = {"kube_token" : FAKE_OIDC_TOKEN })
202+ response = client .get (f"api/notebook_events/{ FAKE_NOTEBOOK } " )
199203 assert response .status_code == 200
200204 assert (
201205 response .text
@@ -224,10 +228,10 @@ def test_notebook_events(mocker, validate_kube_token_mock, event):
224228def test_scale_notebook (mocker , validate_kube_token_mock , scale ):
225229 mocker .patch ("notebook_on_kube.main.notebook_exists" , return_value = True )
226230 kubectl = mocker .patch ("notebook_on_kube.main.kubectl" )
231+ client = TestClient (app = app , cookies = {"kube_token" : FAKE_OIDC_TOKEN })
227232 response = client .get (
228233 f"api/scale_notebook/{ FAKE_NOTEBOOK } ?scale={ scale } " ,
229- cookies = {"kube_token" : FAKE_OIDC_TOKEN },
230- allow_redirects = False ,
234+ follow_redirects = False ,
231235 )
232236 assert response .status_code == 303
233237 assert response .headers ["location" ] == "/api/notebooks/"
@@ -245,9 +249,9 @@ def test_scale_notebook(mocker, validate_kube_token_mock, scale):
245249
246250
247251def test_new_notebook (validate_kube_token_mock ):
252+ client = TestClient (app = app , cookies = {"kube_token" : FAKE_OIDC_TOKEN })
248253 response = client .get (
249254 "api/new_notebook/" ,
250- cookies = {"kube_token" : FAKE_OIDC_TOKEN },
251255 )
252256 assert response .status_code == 200
253257 assert response .template .name == "new_notebook.html"
@@ -270,11 +274,11 @@ def test_create_notebook(mocker, validate_kube_token_mock, existing, helm_values
270274 yaml_load = mocker .spy (yaml , "load" )
271275 yaml_dump = mocker .spy (yaml , "dump" )
272276
277+ client = TestClient (app = app , cookies = {"kube_token" : FAKE_OIDC_TOKEN })
273278 response = client .post (
274279 "api/create_notebook/" ,
275- cookies = {"kube_token" : FAKE_OIDC_TOKEN },
276280 data = {"notebook_name" : FAKE_NOTEBOOK , "helm_values" : helm_values },
277- allow_redirects = False ,
281+ follow_redirects = False ,
278282 )
279283 assert response .status_code == status_code
280284 if not existing :
0 commit comments