@@ -71,32 +71,19 @@ async def lost_pooled_connection(request_container: modern_di.Container) -> None
7171 await _terminate_backend (engine , * watched )
7272
7373
74- _READ_CASES : typing .Final = [
75- (ioc .UseCases .authenticate_user_use_case , {"username" : "nobody" , "password" : "hunter2hunter2" }, None ),
76- (ioc .UseCases .fetch_chats_use_case , {"actor" : UNKNOWN_ACTOR }, []),
77- (ioc .UseCases .fetch_user_use_case , {"actor" : UNKNOWN_ACTOR }, None ),
78- ]
79- READ_USE_CASES : typing .Final = pytest .mark .parametrize (("provider" , "kwargs" , "expected" ), _READ_CASES )
80- READ_USE_CASES_WITH_REVOCATION_CHECK : typing .Final = pytest .mark .parametrize (
74+ AUTOCOMMIT_READ_USE_CASES : typing .Final = pytest .mark .parametrize (
8175 ("provider" , "kwargs" , "expected" ),
82- [* _READ_CASES , (ioc .UseCases .check_token_revoked_use_case , {"jti" : "unknown" }, False )],
76+ [
77+ (ioc .UseCases .authenticate_user_use_case , {"username" : "nobody" , "password" : "hunter2hunter2" }, None ),
78+ (ioc .UseCases .fetch_chats_use_case , {"actor" : UNKNOWN_ACTOR }, []),
79+ (ioc .UseCases .fetch_user_use_case , {"actor" : UNKNOWN_ACTOR }, None ),
80+ (ioc .UseCases .check_token_revoked_use_case , {"jti" : "unknown" }, False ),
81+ ],
8382)
8483
8584
86- @pytest .mark .usefixtures ("lost_connection" )
87- @READ_USE_CASES
88- async def test_read_use_case_recovers_from_a_lost_connection (
89- request_container : modern_di .Container ,
90- provider : modern_di .providers .Factory [typing .Any ],
91- kwargs : dict [str , typing .Any ],
92- expected : object ,
93- ) -> None :
94- use_case : typing .Final = request_container .resolve_provider (provider )
95- assert await use_case (** kwargs ) == expected
96-
97-
9885@pytest .mark .usefixtures ("lost_pooled_connection" )
99- @READ_USE_CASES_WITH_REVOCATION_CHECK
86+ @AUTOCOMMIT_READ_USE_CASES
10087async def test_read_use_case_recovers_from_a_connection_lost_while_pooled (
10188 request_container : modern_di .Container ,
10289 provider : modern_di .providers .Factory [typing .Any ],
@@ -107,22 +94,24 @@ async def test_read_use_case_recovers_from_a_connection_lost_while_pooled(
10794 assert await use_case (** kwargs ) == expected
10895
10996
97+ _TRANSACTIONAL_MEMBERSHIP_GATED_CASES : typing .Final = [
98+ (ioc .UseCases .fetch_messages_use_case , {}),
99+ (
100+ ioc .UseCases .create_message_use_case ,
101+ {"data" : SendMessageRequest (idempotency_key = uuid .uuid4 (), text = "hello" )},
102+ ),
103+ (ioc .UseCases .mark_read_use_case , {"data" : MarkReadRequest (last_read_message_id = 1 )}),
104+ ]
105+ TRANSACTIONAL_MEMBERSHIP_GATED_USE_CASES : typing .Final = pytest .mark .parametrize (
106+ ("provider" , "kwargs" ), _TRANSACTIONAL_MEMBERSHIP_GATED_CASES
107+ )
110108MEMBERSHIP_GATED_USE_CASES : typing .Final = pytest .mark .parametrize (
111- ("provider" , "kwargs" ),
112- [
113- (ioc .UseCases .fetch_chat_use_case , {}),
114- (ioc .UseCases .fetch_messages_use_case , {}),
115- (
116- ioc .UseCases .create_message_use_case ,
117- {"data" : SendMessageRequest (idempotency_key = uuid .uuid4 (), text = "hello" )},
118- ),
119- (ioc .UseCases .mark_read_use_case , {"data" : MarkReadRequest (last_read_message_id = 1 )}),
120- ],
109+ ("provider" , "kwargs" ), [(ioc .UseCases .fetch_chat_use_case , {}), * _TRANSACTIONAL_MEMBERSHIP_GATED_CASES ]
121110)
122111
123112
124113@pytest .mark .usefixtures ("lost_connection" )
125- @MEMBERSHIP_GATED_USE_CASES
114+ @TRANSACTIONAL_MEMBERSHIP_GATED_USE_CASES
126115async def test_membership_gated_use_case_recovers_from_a_lost_connection (
127116 request_container : modern_di .Container ,
128117 provider : modern_di .providers .Factory [typing .Any ],
0 commit comments