@@ -1818,6 +1818,50 @@ async def test_starting_session(
18181818 assert session_res .json ["error" ]["message" ] == expected_error_message
18191819
18201820
1821+ @pytest .mark .asyncio
1822+ @pytest .mark .xdist_group ("sessions" ) # Needs to run on the same worker as the rest of the sessions tests
1823+ @pytest .mark .parametrize ("preemptible" , [True , False ])
1824+ async def test_starting_session_labels_preemptible_pods (
1825+ app_manager : DependencyManager ,
1826+ sanic_client : SanicASGITestClient ,
1827+ create_project ,
1828+ create_resource_pool ,
1829+ create_session_launcher ,
1830+ amalthea_installation ,
1831+ user_headers ,
1832+ regular_user_api_user ,
1833+ valid_resource_pool_payload ,
1834+ preemptible : bool ,
1835+ ) -> None :
1836+ project = await create_project (sanic_client , "Some project" , visibility = "public" )
1837+ classes = [dict (rc , preemptible = preemptible ) for rc in valid_resource_pool_payload ["classes" ]]
1838+ resource_pool = await create_resource_pool (admin = True , classes = classes )
1839+ launcher = await create_session_launcher (
1840+ "launcher" ,
1841+ project ["id" ],
1842+ resource_class_id = resource_pool ["classes" ][0 ]["id" ],
1843+ environment = {
1844+ "container_image" : "renku/renkulab-py:3.10-0.23.0-amalthea-sessions-3" ,
1845+ "environment_kind" : "CUSTOM" ,
1846+ "name" : "test" ,
1847+ "port" : 8888 ,
1848+ "environment_image_source" : "image" ,
1849+ },
1850+ )
1851+
1852+ _ , res = await sanic_client .post (
1853+ "/api/data/sessions" ,
1854+ headers = user_headers ,
1855+ json = {"project_id" : project ["id" ], "launcher_id" : launcher ["id" ]},
1856+ cookies = {"_renku_session" : "some content" },
1857+ )
1858+ assert res .status_code == 201 , res .text
1859+
1860+ session = await app_manager .config .nb_config .k8s_v2_client .get_session (res .json ["name" ], regular_user_api_user .id )
1861+ assert session is not None
1862+ assert session .metadata .labels ["renku.io/preemptible" ] == str (preemptible ).lower ()
1863+
1864+
18211865@pytest .mark .asyncio
18221866@pytest .mark .xdist_group ("sessions" ) # Needs to run on the same worker as the rest of the sessions tests
18231867@pytest .mark .parametrize (
0 commit comments