@@ -220,6 +220,51 @@ def test_create_assignment_no_required_qualifications(self):
220220 with pytest .raises (Exception , match = "User doesn't have required qualifications." ):
221221 create_assignment (ESCROW_ADDRESS , Networks .localhost , user_address , [])
222222
223+ def test_create_assignment_with_required_qualifications (self ):
224+ cvat_project , cvat_task , cvat_job = create_project_task_and_job (
225+ self .session , ESCROW_ADDRESS , 1
226+ )
227+ initial_job_updated_at = cvat_job .updated_at
228+ initial_task_updated_at = cvat_task .updated_at
229+ initial_project_updated_at = cvat_project .updated_at
230+
231+ user_address = WALLET_ADDRESS1
232+ user = User (
233+ wallet_address = user_address ,
234+ 235+ cvat_id = 1 ,
236+ )
237+ self .session .add (user )
238+
239+ self .session .commit ()
240+
241+ with (
242+ open ("tests/utils/manifest.json" ) as data ,
243+ patch ("src.services.exchange.get_escrow_manifest" ) as mock_get_manifest ,
244+ patch ("src.services.exchange.cvat_api" ),
245+ ):
246+ manifest = json .load (data )
247+ manifest ["qualifications" ] = ["test" , "test2" ]
248+ mock_get_manifest .return_value = manifest
249+ assignment_id = create_assignment (
250+ cvat_project .escrow_address , Networks (cvat_project .chain_id ), user_address , ["test" , "test2" , "test3" ]
251+ )
252+
253+ assignment = self .session .query (Assignment ).filter_by (id = assignment_id ).first ()
254+
255+ assert assignment .cvat_job_id == cvat_job .cvat_id
256+ assert assignment .user_wallet_address == user_address
257+ assert assignment .status == AssignmentStatuses .created
258+
259+ self .session .refresh (cvat_job )
260+ assert cvat_job .updated_at != initial_job_updated_at
261+
262+ self .session .refresh (cvat_task )
263+ assert cvat_task .updated_at != initial_task_updated_at
264+
265+ self .session .refresh (cvat_project )
266+ assert cvat_project .updated_at != initial_project_updated_at
267+
223268 def test_create_assignment_unfinished_assignment (self ):
224269 _ , _ , cvat_job = create_project_task_and_job (self .session , ESCROW_ADDRESS , 1 )
225270
0 commit comments