1515from athenian .api .internal .jira import JIRAConfig
1616from athenian .api .internal .miners .filters import JIRAFilter , LabelFilter
1717from athenian .api .internal .miners .github .deployment import (
18+ MineDeploymentsMetrics ,
1819 deployment_facts_extract_mentioned_people ,
1920 hide_outlier_first_deployments ,
2021 mine_deployments ,
@@ -59,6 +60,7 @@ async def test_mine_deployments_from_scratch(
5960):
6061 time_from = datetime (2015 , 1 , 1 , tzinfo = timezone .utc )
6162 time_to = datetime (2020 , 1 , 1 , tzinfo = timezone .utc )
63+ metrics = MineDeploymentsMetrics .empty ()
6264 await mine_releases (
6365 ["src-d/go-git" ],
6466 {},
@@ -82,6 +84,7 @@ async def test_mine_deployments_from_scratch(
8284 with_deployments = False ,
8385 )
8486 await wait_deferred ()
87+
8588 deps = await mine_deployments (
8689 ["src-d/go-git" ],
8790 {},
@@ -105,12 +108,15 @@ async def test_mine_deployments_from_scratch(
105108 pdb ,
106109 rdb ,
107110 cache ,
111+ metrics = metrics ,
108112 )
109113 _validate_deployments (deps , 9 , True )
110114 deployment_facts_extract_mentioned_people (deps )
111115 await wait_deferred ()
112116 commits = await pdb .fetch_all (select ([GitHubCommitDeployment ]))
113117 assert len (commits ) == 4684
118+ assert metrics .count == 18
119+ assert metrics .unresolved == 0
114120
115121 # test the cache
116122 deps = await mine_deployments (
@@ -140,6 +146,73 @@ async def test_mine_deployments_from_scratch(
140146 _validate_deployments (deps , 9 , True )
141147
142148
149+ @with_defer
150+ async def test_mine_deployments_unresolved (
151+ sample_deployments ,
152+ release_match_setting_tag_or_branch ,
153+ branches ,
154+ default_branches ,
155+ prefixer ,
156+ mdb ,
157+ pdb ,
158+ rdb ,
159+ cache ,
160+ ):
161+ time_from = datetime (2015 , 1 , 1 , tzinfo = timezone .utc )
162+ time_to = datetime (2020 , 1 , 1 , tzinfo = timezone .utc )
163+ metrics = MineDeploymentsMetrics .empty ()
164+
165+ await rdb .execute (
166+ insert (DeploymentNotification ).values (
167+ account_id = 1 ,
168+ name = "whatever" ,
169+ conclusion = "SUCCESS" ,
170+ environment = "production" ,
171+ started_at = datetime (2019 , 11 , 2 , tzinfo = timezone .utc ),
172+ finished_at = datetime (2019 , 11 , 2 , 0 , 10 , tzinfo = timezone .utc ),
173+ created_at = datetime .now (timezone .utc ),
174+ updated_at = datetime .now (timezone .utc ),
175+ ),
176+ )
177+ await rdb .execute (
178+ insert (DeployedComponent ).values (
179+ account_id = 1 ,
180+ deployment_name = "whatever" ,
181+ repository_node_id = 40550 ,
182+ reference = "not exists" ,
183+ created_at = datetime .now (timezone .utc ),
184+ ),
185+ )
186+
187+ await mine_deployments (
188+ ["src-d/go-git" ],
189+ {},
190+ time_from ,
191+ time_to ,
192+ ["production" , "staging" ],
193+ [],
194+ {},
195+ {},
196+ LabelFilter .empty (),
197+ JIRAFilter .empty (),
198+ release_match_setting_tag_or_branch ,
199+ LogicalRepositorySettings .empty (),
200+ branches ,
201+ default_branches ,
202+ prefixer ,
203+ 1 ,
204+ None ,
205+ (6366825 ,),
206+ mdb ,
207+ pdb ,
208+ rdb ,
209+ cache ,
210+ metrics = metrics ,
211+ )
212+ assert metrics .count == 18
213+ assert metrics .unresolved == 1
214+
215+
143216@with_defer
144217async def test_mine_deployments_addons_cache (
145218 sample_deployments ,
0 commit comments