11import pytest
22
3- from unittest .mock import Mock
3+ from unittest .mock import Mock , patch
44
55from datetime import datetime
66from github import GithubJob
@@ -14,10 +14,15 @@ def new_job_event():
1414 return {
1515 "workflow_job" : {
1616 "id" : "workflow_id" ,
17+ "name" : "workflow name" ,
18+ "run_id" : 1234567890 ,
1719 "started_at" : "2024-04-29T12:43:16Z" ,
1820 "completed_at" : None ,
1921 "node_id" : "CR_kwDOHC6jj88AAAAFqGXrPQ" ,
22+ "runner_name" : "test runner" ,
23+ "runner_group_name" : "Runner Group Test" ,
2024 },
25+ "repository" : {"full_name" : "test/repo" },
2126 "action" : "queued" ,
2227 }
2328
@@ -27,10 +32,15 @@ def in_progress_job_event():
2732 return {
2833 "workflow_job" : {
2934 "id" : "workflow_id" ,
35+ "name" : "workflow name" ,
36+ "run_id" : 1234567890 ,
3037 "started_at" : "2024-04-29T12:43:32Z" ,
3138 "completed_at" : None ,
3239 "node_id" : "CR_kwDOHC6jj88AAAAFqGXrPQ" ,
40+ "runner_name" : "test runner" ,
41+ "runner_group_name" : "Runner Group Test" ,
3342 },
43+ "repository" : {"full_name" : "test/repo" },
3444 "action" : "in_progress" ,
3545 }
3646
@@ -40,10 +50,15 @@ def completed_job_event():
4050 return {
4151 "workflow_job" : {
4252 "id" : "workflow_id" ,
53+ "name" : "workflow name" ,
54+ "run_id" : 1234567890 ,
4355 "started_at" : "2024-04-29T12:43:32Z" ,
4456 "completed_at" : "2024-04-29T12:45:09Z" ,
4557 "node_id" : "CR_kwDOHC6jj88AAAAFqGXrPQ" ,
58+ "runner_name" : "test runner" ,
59+ "runner_group_name" : "Runner Group Test" ,
4660 },
61+ "repository" : {"full_name" : "test/repo" },
4762 "action" : "completed" ,
4863 }
4964
@@ -56,22 +71,35 @@ def test_new_job_event(new_job_event):
5671 assert handler .queued .get ("workflow_id" )
5772
5873
59- def test_in_progress_job_event (in_progress_job_event ):
74+ @patch ("metrics.send_queued_job" )
75+ def test_in_progress_job_event (
76+ send_queued_job_mock , new_job_event , in_progress_job_event
77+ ):
6078 handler = JobEventsHandler ()
61- job = Mock ( )
79+ job = Job ( GithubJob ( new_job_event ) )
6280 handler .queued ["workflow_id" ] = job
6381
6482 handler .process_event (in_progress_job_event )
6583
6684 assert not handler .queued .get ("workflow_id" )
6785 assert handler .in_progress .get ("workflow_id" ) == job
86+ send_queued_job_mock .assert_called_with (
87+ seconds_in_queue = 16.0 ,
88+ job_name = "workflow name" ,
89+ repository = "test/repo" ,
90+ runner = "test runner" ,
91+ run_id = 1234567890 ,
92+ public = False ,
93+ )
6894
6995
70- def test_unprocessed_in_progress_job_event (in_progress_job_event ):
96+ @patch ("metrics.send_queued_job" )
97+ def test_unprocessed_in_progress_job_event (send_queued_job_mock , in_progress_job_event ):
7198 handler = JobEventsHandler ()
7299 handler .process_event (in_progress_job_event )
73100
74101 assert handler .in_progress .get ("workflow_id" )
102+ send_queued_job_mock .assert_not_called ()
75103
76104
77105def test_completed_job_event (completed_job_event ):
0 commit comments