@@ -233,12 +233,11 @@ def test_content_rejected_when_max_length_is_zero(self) -> None:
233233 validate_saved_prompt_content ("a" , max_content_length = 0 )
234234
235235
236+ @pytest .mark .usefixtures ("patch_saved_prompts_get_session" )
236237class TestCreateSavedPrompt :
237238 """Test cases for create_saved_prompt."""
238239
239- def test_create_persists_and_returns_entity (
240- self , patch_saved_prompts_get_session : None , sqlite_engine : Engine
241- ) -> None :
240+ def test_create_persists_and_returns_entity (self , sqlite_engine : Engine ) -> None :
242241 """Test create returns a persisted SavedPrompt with id and fields."""
243242 created = create_saved_prompt (
244243 user_id = "user-1" ,
@@ -262,7 +261,7 @@ def test_create_persists_and_returns_entity(
262261 assert stored .content == "Hello"
263262
264263 def test_create_return_value_has_usable_timestamps_after_session_close (
265- self , patch_saved_prompts_get_session : None
264+ self ,
266265 ) -> None :
267266 """Test timestamps are readable on the returned object after DAL returns."""
268267 created = create_saved_prompt (
@@ -275,18 +274,14 @@ def test_create_return_value_has_usable_timestamps_after_session_close(
275274 assert created .created_at is not None
276275 assert created .updated_at is not None
277276
278- def test_create_at_limit_raises (
279- self , patch_saved_prompts_get_session : None
280- ) -> None :
277+ def test_create_at_limit_raises (self ) -> None :
281278 """Test create raises when the user already has max_prompts_per_user prompts."""
282279 create_saved_prompt ("user-1" , "one" , "c1" , max_prompts_per_user = 1 )
283280
284281 with pytest .raises (SavedPromptLimitExceededError ):
285282 create_saved_prompt ("user-1" , "two" , "c2" , max_prompts_per_user = 1 )
286283
287- def test_create_duplicate_name_raises_conflict (
288- self , patch_saved_prompts_get_session : None
289- ) -> None :
284+ def test_create_duplicate_name_raises_conflict (self ) -> None :
290285 """Test duplicate (user_id, name) raises SavedPromptConflictError."""
291286 create_saved_prompt ("user-1" , "same" , "first" , max_prompts_per_user = 50 )
292287
@@ -295,26 +290,23 @@ def test_create_duplicate_name_raises_conflict(
295290
296291 assert str (exc_info .value ) == "Saved prompt name already exists"
297292
298- def test_create_allows_same_name_for_different_users (
299- self , patch_saved_prompts_get_session : None
300- ) -> None :
293+ def test_create_allows_same_name_for_different_users (self ) -> None :
301294 """Test the same name may exist for different users."""
302295 first = create_saved_prompt ("user-a" , "shared" , "a" , max_prompts_per_user = 50 )
303296 second = create_saved_prompt ("user-b" , "shared" , "b" , max_prompts_per_user = 50 )
304297 assert first .id != second .id
305298
306299
300+ @pytest .mark .usefixtures ("patch_saved_prompts_get_session" )
307301class TestListSavedPromptsByUser :
308302 """Test cases for list_saved_prompts_by_user."""
309303
310- def test_list_empty_returns_empty_list (
311- self , patch_saved_prompts_get_session : None
312- ) -> None :
304+ def test_list_empty_returns_empty_list (self ) -> None :
313305 """Test listing for a user with no prompts returns []."""
314306 assert list_saved_prompts_by_user ("nobody" ) == []
315307
316308 def test_list_returns_only_that_users_prompts_ordered_by_created_at_desc (
317- self , patch_saved_prompts_get_session : None , sqlite_engine : Engine
309+ self , sqlite_engine : Engine
318310 ) -> None :
319311 """Test list is user-scoped and ordered by created_at descending."""
320312 older = create_saved_prompt ("user-1" , "first" , "c1" , max_prompts_per_user = 50 )
@@ -339,12 +331,11 @@ def test_list_returns_only_that_users_prompts_ordered_by_created_at_desc(
339331 assert all (p .user_id == "user-1" for p in results )
340332
341333
334+ @pytest .mark .usefixtures ("patch_saved_prompts_get_session" )
342335class TestDeleteSavedPromptByIdAndUser :
343336 """Test cases for delete_saved_prompt_by_id_and_user."""
344337
345- def test_delete_owned_prompt (
346- self , patch_saved_prompts_get_session : None , sqlite_engine : Engine
347- ) -> None :
338+ def test_delete_owned_prompt (self , sqlite_engine : Engine ) -> None :
348339 """Test deleting an owned prompt removes the row."""
349340 created = create_saved_prompt (
350341 "user-1" , "to-delete" , "body" , max_prompts_per_user = 50
@@ -358,17 +349,15 @@ def test_delete_owned_prompt(
358349 with session_factory () as session :
359350 assert session .get (SavedPrompt , created .id ) is None
360351
361- def test_delete_missing_raises_not_found (
362- self , patch_saved_prompts_get_session : None
363- ) -> None :
352+ def test_delete_missing_raises_not_found (self ) -> None :
364353 """Test deleting an unknown id raises SavedPromptNotFoundError."""
365354 with pytest .raises (SavedPromptNotFoundError ) as exc_info :
366355 delete_saved_prompt_by_id_and_user ("missing-id" , "user-1" )
367356
368357 assert str (exc_info .value ) == "Saved prompt not found"
369358
370359 def test_delete_other_users_prompt_raises_access_denied (
371- self , patch_saved_prompts_get_session : None , sqlite_engine : Engine
360+ self , sqlite_engine : Engine
372361 ) -> None :
373362 """Test delete by non-owner raises access denied and leaves the row."""
374363 created = create_saved_prompt (
0 commit comments