11from unittest .mock import AsyncMock
22
33import pytest
4+ from celery import Celery
45from httpx import AsyncClient
6+ from pytest_mock import MockerFixture
57from sqlalchemy import desc , select
68from sqlalchemy .ext .asyncio import AsyncSession
79
1214
1315
1416async def test_developer_plus_can_create_run_of_transfer_his_group (
15- client : AsyncClient ,
17+ client_with_mocked_celery : AsyncClient ,
18+ mocked_celery : Celery ,
1619 group_transfer : MockTransfer ,
1720 session : AsyncSession ,
18- mocker ,
21+ mocker : MockerFixture ,
1922 role_developer_plus : UserTestRoles ,
2023) -> None :
21- # Arrange
2224 user = group_transfer .owner_group .get_member_of_role (role_developer_plus )
23- mock_send_task = mocker . patch ( "syncmaster.backend.celery.app. send_task" )
25+ mock_send_task = mocked_celery . send_task
2426 mock_to_thread = mocker .patch ("asyncio.to_thread" , new_callable = AsyncMock )
2527
2628 run = (
@@ -31,14 +33,12 @@ async def test_developer_plus_can_create_run_of_transfer_his_group(
3133
3234 assert not run
3335
34- # Act
35- result = await client .post (
36+ result = await client_with_mocked_celery .post (
3637 "v1/runs" ,
3738 headers = {"Authorization" : f"Bearer { user .token } " },
3839 json = {"transfer_id" : group_transfer .id },
3940 )
4041
41- # Assert
4242 run = (
4343 await session .scalars (
4444 select (Run ).filter_by (transfer_id = group_transfer .id , status = Status .CREATED ).order_by (desc (Run .created_at )),
@@ -66,24 +66,20 @@ async def test_developer_plus_can_create_run_of_transfer_his_group(
6666
6767
6868async def test_groupless_user_cannot_create_run (
69- client : AsyncClient ,
69+ client_with_mocked_celery : AsyncClient ,
7070 simple_user : MockUser ,
7171 group_transfer : MockTransfer ,
7272 session : AsyncSession ,
73- mocker ,
73+ mocker : MockerFixture ,
7474) -> None :
75- # Arrange
76- mocker .patch ("syncmaster.backend.celery.app.send_task" )
7775 mocker .patch ("asyncio.to_thread" , new_callable = AsyncMock )
7876
79- # Act
80- result = await client .post (
77+ result = await client_with_mocked_celery .post (
8178 "v1/runs" ,
8279 headers = {"Authorization" : f"Bearer { simple_user .token } " },
8380 json = {"transfer_id" : group_transfer .id },
8481 )
8582
86- # Assert
8783 assert result .json () == {
8884 "error" : {
8985 "code" : "not_found" ,
@@ -95,26 +91,22 @@ async def test_groupless_user_cannot_create_run(
9591
9692
9793async def test_group_member_cannot_create_run_of_other_group_transfer (
98- client : AsyncClient ,
94+ client_with_mocked_celery : AsyncClient ,
9995 group_transfer : MockTransfer ,
10096 group : MockGroup ,
10197 session : AsyncSession ,
102- mocker ,
98+ mocker : MockerFixture ,
10399 role_guest_plus : UserTestRoles ,
104100):
105- # Arrange
106- mocker .patch ("syncmaster.backend.celery.app.send_task" )
107101 mocker .patch ("asyncio.to_thread" , new_callable = AsyncMock )
108102 user = group .get_member_of_role (role_guest_plus )
109103
110- # Act
111- result = await client .post (
104+ result = await client_with_mocked_celery .post (
112105 "v1/runs" ,
113106 headers = {"Authorization" : f"Bearer { user .token } " },
114107 json = {"transfer_id" : group_transfer .id },
115108 )
116109
117- # Assert
118110 assert result .json () == {
119111 "error" : {
120112 "code" : "not_found" ,
@@ -132,18 +124,17 @@ async def test_group_member_cannot_create_run_of_other_group_transfer(
132124
133125
134126async def test_superuser_can_create_run (
135- client : AsyncClient ,
127+ client_with_mocked_celery : AsyncClient ,
128+ mocked_celery : Celery ,
136129 superuser : MockUser ,
137130 group_transfer : MockTransfer ,
138131 session : AsyncSession ,
139- mocker ,
132+ mocker : MockerFixture ,
140133) -> None :
141- # Arrange
142- mock_send_task = mocker .patch ("syncmaster.backend.celery.app.send_task" )
134+ mock_send_task = mocked_celery .send_task
143135 mock_to_thread = mocker .patch ("asyncio.to_thread" , new_callable = AsyncMock )
144136
145- # Act
146- result = await client .post (
137+ result = await client_with_mocked_celery .post (
147138 "v1/runs" ,
148139 headers = {"Authorization" : f"Bearer { superuser .token } " },
149140 json = {"transfer_id" : group_transfer .id },
@@ -154,7 +145,6 @@ async def test_superuser_can_create_run(
154145 )
155146 ).first ()
156147
157- # Assert
158148 response = result .json ()
159149 assert response == {
160150 "id" : run .id ,
@@ -178,21 +168,17 @@ async def test_superuser_can_create_run(
178168
179169
180170async def test_unauthorized_user_cannot_create_run (
181- client : AsyncClient ,
171+ client_with_mocked_celery : AsyncClient ,
182172 group_transfer : MockTransfer ,
183- mocker ,
173+ mocker : MockerFixture ,
184174) -> None :
185- # Arrange
186- mocker .patch ("syncmaster.backend.celery.app.send_task" )
187175 mocker .patch ("asyncio.to_thread" , new_callable = AsyncMock )
188176
189- # Act
190- result = await client .post (
177+ result = await client_with_mocked_celery .post (
191178 "v1/runs" ,
192179 json = {"transfer_id" : group_transfer .id },
193180 )
194181
195- # Assert
196182 assert result .json () == {
197183 "error" : {
198184 "code" : "unauthorized" ,
@@ -204,25 +190,21 @@ async def test_unauthorized_user_cannot_create_run(
204190
205191
206192async def test_group_member_cannot_create_run_of_unknown_transfer_error (
207- client : AsyncClient ,
193+ client_with_mocked_celery : AsyncClient ,
208194 group_transfer : MockTransfer ,
209195 session : AsyncSession ,
210- mocker ,
196+ mocker : MockerFixture ,
211197 role_guest_plus : UserTestRoles ,
212198) -> None :
213- # Arrange
214199 user = group_transfer .owner_group .get_member_of_role (role_guest_plus )
215- mocker .patch ("syncmaster.backend.celery.app.send_task" )
216200 mocker .patch ("asyncio.to_thread" , new_callable = AsyncMock )
217201
218- # Act
219- result = await client .post (
202+ result = await client_with_mocked_celery .post (
220203 "v1/runs" ,
221204 headers = {"Authorization" : f"Bearer { user .token } " },
222205 json = {"transfer_id" : - 1 },
223206 )
224207
225- # Assert
226208 assert result .json () == {
227209 "error" : {
228210 "code" : "not_found" ,
@@ -233,24 +215,20 @@ async def test_group_member_cannot_create_run_of_unknown_transfer_error(
233215
234216
235217async def test_superuser_cannot_create_run_of_unknown_transfer_error (
236- client : AsyncClient ,
218+ client_with_mocked_celery : AsyncClient ,
237219 superuser : MockUser ,
238220 group_transfer : MockTransfer ,
239221 session : AsyncSession ,
240- mocker ,
222+ mocker : MockerFixture ,
241223) -> None :
242- # Arrange
243- mocker .patch ("syncmaster.backend.celery.app.send_task" )
244224 mocker .patch ("asyncio.to_thread" , new_callable = AsyncMock )
245225
246- # Act
247- result = await client .post (
226+ result = await client_with_mocked_celery .post (
248227 "v1/runs" ,
249228 headers = {"Authorization" : f"Bearer { superuser .token } " },
250229 json = {"transfer_id" : - 1 },
251230 )
252231
253- # Assert
254232 assert result .json () == {
255233 "error" : {
256234 "code" : "not_found" ,
0 commit comments