Skip to content

Commit ffc7c1b

Browse files
author
Bastien Abadie
committed
backend: support all:all instead of full
1 parent 883e96e commit ffc7c1b

File tree

3 files changed

+27
-28
lines changed

3 files changed

+27
-28
lines changed

backend/code_coverage_backend/gcp.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ def ingest_report(self, report):
114114

115115
# Download the report
116116
if not self.download_report(report):
117+
logger.info("Report not available", report=str(report))
117118
return False
118119

119120
# Read overall coverage for history
@@ -351,7 +352,9 @@ def ingest_available_reports(self, repository):
351352
"""
352353
assert isinstance(repository, str)
353354

354-
REGEX_BLOB = re.compile(r"^{}/(\w+)/([\w\:\-]+).json.zstd$".format(repository))
355+
REGEX_BLOB = re.compile(
356+
r"^{}/(\w+)/([\w\-]+):([\w\-]+).json.zstd$".format(repository)
357+
)
355358
for blob in self.bucket.list_blobs(prefix=repository):
356359

357360
# Get changeset from blob name
@@ -360,12 +363,9 @@ def ingest_available_reports(self, repository):
360363
logger.warn("Invalid blob found {}".format(blob.name))
361364
continue
362365
changeset = match.group(1)
363-
variant = match.group(2)
366+
platform = match.group(2)
367+
suite = match.group(3)
364368

365369
# Build report instance and ingest it
366-
if variant is None or variant == "full":
367-
platform, suite = DEFAULT_FILTER, DEFAULT_FILTER
368-
else:
369-
platform, suite = variant.split(":")
370370
report = Report(self.reports_dir, repository, changeset, platform, suite)
371371
self.ingest_report(report)

backend/code_coverage_backend/report.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,9 @@ def __eq__(self, other):
6969

7070
@property
7171
def name(self):
72-
if self.suite == DEFAULT_FILTER and self.platform == DEFAULT_FILTER:
73-
return "{}/{}/full".format(self.repository, self.changeset)
74-
else:
75-
return "{}/{}/{}:{}".format(
76-
self.repository, self.changeset, self.platform, self.suite
77-
)
72+
return "{}/{}/{}:{}".format(
73+
self.repository, self.changeset, self.platform, self.suite
74+
)
7875

7976
@property
8077
def path(self):

backend/tests/test_gcp.py

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,18 @@ def test_download_report(mock_cache):
1313
"""
1414
Test base method to download a report & store it on local FS
1515
"""
16-
mock_cache.bucket.add_mock_blob("myrepo/deadbeef123/full.json.zstd")
16+
mock_cache.bucket.add_mock_blob("myrepo/deadbeef123/all:all.json.zstd")
1717

1818
# Does not exist
1919
report = Report(mock_cache.reports_dir, "myrepo", "missing", date=1, push_id=1)
2020
assert mock_cache.download_report(report) is False
2121

2222
archive = os.path.join(
23-
mock_cache.reports_dir, "myrepo", "deadbeef123", "full.json.zstd"
23+
mock_cache.reports_dir, "myrepo", "deadbeef123", "all:all.json.zstd"
24+
)
25+
payload = os.path.join(
26+
mock_cache.reports_dir, "myrepo", "deadbeef123", "all:all.json"
2427
)
25-
payload = os.path.join(mock_cache.reports_dir, "myrepo", "deadbeef123", "full.json")
2628
assert not os.path.exists(archive)
2729
assert not os.path.exists(payload)
2830

@@ -46,9 +48,9 @@ def test_ingestion(mock_cache):
4648
Test ingestion of several reports and their retrieval through Redis index
4749
"""
4850
# Setup blobs
49-
mock_cache.bucket.add_mock_blob("myrepo/rev1/full.json.zstd", coverage=0.1)
50-
mock_cache.bucket.add_mock_blob("myrepo/rev2/full.json.zstd", coverage=0.2)
51-
mock_cache.bucket.add_mock_blob("myrepo/rev10/full.json.zstd", coverage=1.0)
51+
mock_cache.bucket.add_mock_blob("myrepo/rev1/all:all.json.zstd", coverage=0.1)
52+
mock_cache.bucket.add_mock_blob("myrepo/rev2/all:all.json.zstd", coverage=0.2)
53+
mock_cache.bucket.add_mock_blob("myrepo/rev10/all:all.json.zstd", coverage=1.0)
5254

5355
# No reports at first
5456
assert mock_cache.redis.zcard(b"reports:myrepo") == 0
@@ -67,13 +69,13 @@ def test_ingestion(mock_cache):
6769
assert mock_cache.redis.zcard(b"reports:myrepo:all:all") == 3
6870
assert mock_cache.redis.zcard(b"history:myrepo") == 3
6971
assert os.path.exists(
70-
os.path.join(mock_cache.reports_dir, "myrepo", "rev1", "full.json")
72+
os.path.join(mock_cache.reports_dir, "myrepo", "rev1", "all:all.json")
7173
)
7274
assert os.path.exists(
73-
os.path.join(mock_cache.reports_dir, "myrepo", "rev2", "full.json")
75+
os.path.join(mock_cache.reports_dir, "myrepo", "rev2", "all:all.json")
7476
)
7577
assert os.path.exists(
76-
os.path.join(mock_cache.reports_dir, "myrepo", "rev10", "full.json")
78+
os.path.join(mock_cache.reports_dir, "myrepo", "rev10", "all:all.json")
7779
)
7880

7981
# Reports are exposed, and sorted by push
@@ -87,7 +89,7 @@ def test_ingestion(mock_cache):
8789
]
8890

8991
# Even if we add a smaller one later on, reports are still sorted
90-
mock_cache.bucket.add_mock_blob("myrepo/rev5/full.json.zstd", coverage=0.5)
92+
mock_cache.bucket.add_mock_blob("myrepo/rev5/all:all.json.zstd", coverage=0.5)
9193
report_5 = Report(mock_cache.reports_dir, "myrepo", "rev5", date=5000, push_id=5)
9294
mock_cache.ingest_report(report_5)
9395
assert mock_cache.list_reports("myrepo") == [
@@ -114,7 +116,7 @@ def test_ingest_hgmo(mock_cache, mock_hgmo):
114116
# Add a report on push 995
115117
rev = hashlib.md5(b"995").hexdigest()
116118
mock_cache.bucket.add_mock_blob(
117-
"myrepo/{}/full.json.zstd".format(rev), coverage=0.5
119+
"myrepo/{}/all:all.json.zstd".format(rev), coverage=0.5
118120
)
119121

120122
# Ingest last pushes
@@ -149,7 +151,7 @@ def test_closest_report(mock_cache, mock_hgmo):
149151
# Add a report on 994, 2 pushes after our revision
150152
report_rev = hashlib.md5(b"994").hexdigest()
151153
mock_cache.bucket.add_mock_blob(
152-
"myrepo/{}/full.json.zstd".format(report_rev), coverage=0.5
154+
"myrepo/{}/all:all.json.zstd".format(report_rev), coverage=0.5
153155
)
154156
report_994 = Report(
155157
mock_cache.reports_dir, "myrepo", report_rev, push_id=1, date=994
@@ -158,7 +160,7 @@ def test_closest_report(mock_cache, mock_hgmo):
158160
# Add a report on 990, 2 pushes before our revision
159161
base_rev = hashlib.md5(b"990").hexdigest()
160162
mock_cache.bucket.add_mock_blob(
161-
"myrepo/{}/full.json.zstd".format(base_rev), coverage=0.4
163+
"myrepo/{}/all:all.json.zstd".format(base_rev), coverage=0.4
162164
)
163165
report_990 = Report(mock_cache.reports_dir, "myrepo", base_rev, push_id=1, date=990)
164166

@@ -197,10 +199,10 @@ def test_get_coverage(mock_cache):
197199
report = Report(mock_cache.reports_dir, "myrepo", "myhash", push_id=1, date=1)
198200
with pytest.raises(AssertionError) as e:
199201
mock_cache.get_coverage(report, "")
200-
assert str(e.value) == "Missing report myrepo/myhash/full"
202+
assert str(e.value) == "Missing report myrepo/myhash/all:all"
201203

202204
# Report available online
203-
mock_cache.bucket.add_mock_blob("myrepo/myhash/full.json.zstd")
205+
mock_cache.bucket.add_mock_blob("myrepo/myhash/all:all.json.zstd")
204206

205207
# Coverage available
206208
coverage = mock_cache.get_coverage(report, "")
@@ -213,7 +215,7 @@ def test_get_coverage(mock_cache):
213215
}
214216

215217
# Remove local file
216-
path = os.path.join(mock_cache.reports_dir, "myrepo", "myhash", "full.json")
218+
path = os.path.join(mock_cache.reports_dir, "myrepo", "myhash", "all:all.json")
217219
assert os.path.exists(path)
218220
os.unlink(path)
219221

0 commit comments

Comments
 (0)