1818
1919
2020@pytest .mark .asyncio
21- @pytest .mark .parametrize ("test_db" , ["sqlite" , "postgres" ], indirect = True )
22- @pytest .mark .usefixtures ("test_db" )
2321class TestListUserPublicKeys :
2422 async def test_returns_40x_if_not_authenticated (self , client : AsyncClient ):
2523 response = await client .post ("/api/users/public_keys/list" )
2624 assert response .status_code in [401 , 403 ]
2725
26+ @pytest .mark .parametrize ("test_db" , ["sqlite" , "postgres" ], indirect = True )
27+ @pytest .mark .usefixtures ("test_db" )
2828 async def test_lists_own_public_keys (self , session : AsyncSession , client : AsyncClient ):
2929 user = await create_user (session = session )
3030 key = await create_user_public_key (
@@ -50,6 +50,8 @@ async def test_lists_own_public_keys(self, session: AsyncSession, client: AsyncC
5050 }
5151 ]
5252
53+ @pytest .mark .parametrize ("test_db" , ["sqlite" , "postgres" ], indirect = True )
54+ @pytest .mark .usefixtures ("test_db" )
5355 async def test_does_not_list_other_users_keys (
5456 self , session : AsyncSession , client : AsyncClient
5557 ):
@@ -63,6 +65,8 @@ async def test_does_not_list_other_users_keys(
6365 assert response .status_code == 200
6466 assert response .json () == []
6567
68+ @pytest .mark .parametrize ("test_db" , ["sqlite" , "postgres" ], indirect = True )
69+ @pytest .mark .usefixtures ("test_db" )
6670 async def test_returns_keys_in_reverse_chronological_order (
6771 self , session : AsyncSession , client : AsyncClient
6872 ):
@@ -93,8 +97,6 @@ async def test_returns_keys_in_reverse_chronological_order(
9397
9498
9599@pytest .mark .asyncio
96- @pytest .mark .parametrize ("test_db" , ["sqlite" , "postgres" ], indirect = True )
97- @pytest .mark .usefixtures ("test_db" )
98100class TestAddUserPublicKey :
99101 PUBLIC_KEY_NO_COMMENT = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA"
100102 PUBLIC_KEY = f"{ PUBLIC_KEY_NO_COMMENT } test@example.com"
@@ -114,6 +116,8 @@ async def test_returns_40x_if_not_authenticated(self, client: AsyncClient):
114116 )
115117 assert response .status_code in [401 , 403 ]
116118
119+ @pytest .mark .parametrize ("test_db" , ["sqlite" , "postgres" ], indirect = True )
120+ @pytest .mark .usefixtures ("test_db" )
117121 @freeze_time (datetime (2023 , 1 , 2 , 3 , 4 , tzinfo = timezone .utc ))
118122 async def test_adds_valid_public_key (
119123 self ,
@@ -137,6 +141,8 @@ async def test_adds_valid_public_key(
137141 }
138142 validate_openssh_public_key_mock .assert_awaited_once_with (self .PUBLIC_KEY )
139143
144+ @pytest .mark .parametrize ("test_db" , ["sqlite" , "postgres" ], indirect = True )
145+ @pytest .mark .usefixtures ("test_db" )
140146 @pytest .mark .usefixtures ("validate_openssh_public_key_mock" )
141147 async def test_adds_key_with_custom_name (self , session : AsyncSession , client : AsyncClient ):
142148 user = await create_user (session = session )
@@ -148,6 +154,8 @@ async def test_adds_key_with_custom_name(self, session: AsyncSession, client: As
148154 assert response .status_code == 200
149155 assert response .json ()["name" ] == "my-laptop"
150156
157+ @pytest .mark .parametrize ("test_db" , ["sqlite" , "postgres" ], indirect = True )
158+ @pytest .mark .usefixtures ("test_db" )
151159 @pytest .mark .usefixtures ("validate_openssh_public_key_mock" )
152160 async def test_uses_md5_as_name_when_no_comment_and_no_name (
153161 self , session : AsyncSession , client : AsyncClient
@@ -161,6 +169,8 @@ async def test_uses_md5_as_name_when_no_comment_and_no_name(
161169 assert response .status_code == 200
162170 assert response .json ()["name" ] == "744e414c6ac55e3f15c1dd48229cbe74"
163171
172+ @pytest .mark .parametrize ("test_db" , ["sqlite" , "postgres" ], indirect = True )
173+ @pytest .mark .usefixtures ("test_db" )
164174 @pytest .mark .parametrize (
165175 "key" ,
166176 [
@@ -180,6 +190,8 @@ async def test_returns_400_for_invalid_key(
180190 assert response .status_code == 400
181191 assert "Invalid public key" in response .json ()["detail" ][0 ]["msg" ]
182192
193+ @pytest .mark .parametrize ("test_db" , ["sqlite" , "postgres" ], indirect = True )
194+ @pytest .mark .usefixtures ("test_db" )
183195 async def test_returns_400_for_unsupported_key (
184196 self , session : AsyncSession , client : AsyncClient
185197 ):
@@ -192,6 +204,8 @@ async def test_returns_400_for_unsupported_key(
192204 assert response .status_code == 400
193205 assert response .json ()["detail" ][0 ]["msg" ] == "Unsupported key type: ssh-dss"
194206
207+ @pytest .mark .parametrize ("test_db" , ["sqlite" , "postgres" ], indirect = True )
208+ @pytest .mark .usefixtures ("test_db" )
195209 @pytest .mark .usefixtures ("validate_openssh_public_key_mock" )
196210 async def test_returns_400_resource_exists_for_duplicate_key (
197211 self , session : AsyncSession , client : AsyncClient
@@ -214,8 +228,6 @@ async def test_returns_400_resource_exists_for_duplicate_key(
214228
215229
216230@pytest .mark .asyncio
217- @pytest .mark .parametrize ("test_db" , ["sqlite" , "postgres" ], indirect = True )
218- @pytest .mark .usefixtures ("test_db" )
219231class TestDeleteUserPublicKeys :
220232 async def test_returns_40x_if_not_authenticated (self , client : AsyncClient ):
221233 response = await client .post (
@@ -224,6 +236,8 @@ async def test_returns_40x_if_not_authenticated(self, client: AsyncClient):
224236 )
225237 assert response .status_code in [401 , 403 ]
226238
239+ @pytest .mark .parametrize ("test_db" , ["sqlite" , "postgres" ], indirect = True )
240+ @pytest .mark .usefixtures ("test_db" )
227241 async def test_deletes_public_key (self , session : AsyncSession , client : AsyncClient ):
228242 user = await create_user (session = session )
229243 key = await create_user_public_key (session = session , user = user )
@@ -241,6 +255,8 @@ async def test_deletes_public_key(self, session: AsyncSession, client: AsyncClie
241255 )
242256 assert res .scalars ().all () == [other_key ]
243257
258+ @pytest .mark .parametrize ("test_db" , ["sqlite" , "postgres" ], indirect = True )
259+ @pytest .mark .usefixtures ("test_db" )
244260 async def test_silently_ignores_nonexistent_ids (
245261 self , session : AsyncSession , client : AsyncClient
246262 ):
@@ -252,6 +268,8 @@ async def test_silently_ignores_nonexistent_ids(
252268 )
253269 assert response .status_code == 200
254270
271+ @pytest .mark .parametrize ("test_db" , ["sqlite" , "postgres" ], indirect = True )
272+ @pytest .mark .usefixtures ("test_db" )
255273 async def test_does_not_delete_other_users_keys (
256274 self , session : AsyncSession , client : AsyncClient
257275 ):
0 commit comments