Skip to content
This repository was archived by the owner on May 5, 2025. It is now read-only.

Commit 78671e3

Browse files
committed
fix tests and more code removal related to partial sessions
1 parent f2b8e07 commit 78671e3

File tree

10 files changed

+49
-770
lines changed

10 files changed

+49
-770
lines changed

services/report/__init__.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,7 @@
5050
RAW_UPLOAD_RAW_REPORT_COUNT,
5151
RAW_UPLOAD_SIZE,
5252
)
53-
from services.report.raw_upload_processor import (
54-
SessionAdjustmentResult,
55-
process_raw_upload,
56-
)
53+
from services.report.raw_upload_processor import process_raw_upload
5754
from services.repository import get_repo_provider_service
5855
from services.yaml.reader import get_paths_from_flags, read_yaml_field
5956

@@ -73,7 +70,7 @@ class ProcessingResult:
7370
session: Session
7471
report: Report | None = None
7572
error: ProcessingError | None = None
76-
session_adjustment: SessionAdjustmentResult | None = None
73+
deleted_sessions: set[int] | None = None
7774

7875

7976
@dataclass
@@ -717,7 +714,7 @@ def build_report_from_raw_content(
717714
upload=upload,
718715
)
719716
result.report = process_result.report
720-
result.session_adjustment = process_result.session_adjustment
717+
result.deleted_sessions = process_result.deleted_sessions
721718

722719
log.info(
723720
"Successfully processed report",
@@ -812,11 +809,10 @@ def update_upload_with_processing_result(
812809
# delete all the carryforwarded `Upload` records corresponding to `Session`s
813810
# which have been removed from the report.
814811
# we always have a `session_adjustment` in the non-error case.
815-
assert processing_result.session_adjustment
816-
deleted_sessions = (
817-
processing_result.session_adjustment.fully_deleted_sessions
812+
assert processing_result.deleted_sessions is not None
813+
delete_uploads_by_sessionid(
814+
upload, list(processing_result.deleted_sessions)
818815
)
819-
delete_uploads_by_sessionid(upload, deleted_sessions)
820816

821817
else:
822818
error = processing_result.error

services/report/languages/tests/unit/test_pycoverage.py

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,6 @@ def test_process_pycoverage(self):
216216
[[0, 1, None, None, None]],
217217
None,
218218
None,
219-
[(0, 1, None, ["Th2dMtk4M_codecov"])],
220219
)
221220
assert processed_report == {
222221
"archive": {
@@ -228,7 +227,6 @@ def test_process_pycoverage(self):
228227
[[0, 1, None, None, None]],
229228
None,
230229
None,
231-
[(0, 1, None, ["Th2dMtk4M_codecov"])],
232230
),
233231
(
234232
2,
@@ -237,10 +235,6 @@ def test_process_pycoverage(self):
237235
[[0, 1, None, None, None]],
238236
None,
239237
None,
240-
[
241-
(0, 1, None, ["test_another.py::test_fib_simple_case"]),
242-
(0, 1, None, ["test_another.py::test_fib_bigger_cases"]),
243-
],
244238
),
245239
(
246240
3,
@@ -249,10 +243,6 @@ def test_process_pycoverage(self):
249243
[[0, 1, None, None, None]],
250244
None,
251245
None,
252-
[
253-
(0, 1, None, ["test_another.py::test_fib_simple_case"]),
254-
(0, 1, None, ["test_another.py::test_fib_bigger_cases"]),
255-
],
256246
),
257247
(
258248
4,
@@ -261,7 +251,6 @@ def test_process_pycoverage(self):
261251
[[0, 1, None, None, None]],
262252
None,
263253
None,
264-
[(0, 1, None, ["test_another.py::test_fib_bigger_cases"])],
265254
),
266255
],
267256
"source.py": [
@@ -272,7 +261,6 @@ def test_process_pycoverage(self):
272261
[[0, 1, None, None, None]],
273262
None,
274263
None,
275-
[(0, 1, None, ["Th2dMtk4M_codecov"])],
276264
),
277265
(
278266
3,
@@ -281,7 +269,6 @@ def test_process_pycoverage(self):
281269
[[0, 1, None, None, None]],
282270
None,
283271
None,
284-
[(0, 1, None, ["Th2dMtk4M_codecov"])],
285272
),
286273
(
287274
4,
@@ -290,7 +277,6 @@ def test_process_pycoverage(self):
290277
[[0, 1, None, None, None]],
291278
None,
292279
None,
293-
[(0, 1, None, ["test_source.py::test_some_code"])],
294280
),
295281
(
296282
5,
@@ -299,7 +285,6 @@ def test_process_pycoverage(self):
299285
[[0, 1, None, None, None]],
300286
None,
301287
None,
302-
[(0, 1, None, ["test_source.py::test_some_code"])],
303288
),
304289
(
305290
6,
@@ -308,7 +293,6 @@ def test_process_pycoverage(self):
308293
[[0, 0, None, None, None]],
309294
None,
310295
None,
311-
[],
312296
),
313297
(
314298
9,
@@ -317,7 +301,6 @@ def test_process_pycoverage(self):
317301
[[0, 1, None, None, None]],
318302
None,
319303
None,
320-
[(0, 1, None, ["Th2dMtk4M_codecov"])],
321304
),
322305
(
323306
10,
@@ -326,7 +309,6 @@ def test_process_pycoverage(self):
326309
[[0, 0, None, None, None]],
327310
None,
328311
None,
329-
[],
330312
),
331313
],
332314
"test_another.py": [
@@ -337,7 +319,6 @@ def test_process_pycoverage(self):
337319
[[0, 1, None, None, None]],
338320
None,
339321
None,
340-
[(0, 1, None, ["Th2dMtk4M_codecov"])],
341322
),
342323
(
343324
3,
@@ -346,7 +327,6 @@ def test_process_pycoverage(self):
346327
[[0, 1, None, None, None]],
347328
None,
348329
None,
349-
[(0, 1, None, ["Th2dMtk4M_codecov"])],
350330
),
351331
(
352332
4,
@@ -355,7 +335,6 @@ def test_process_pycoverage(self):
355335
[[0, 1, None, None, None]],
356336
None,
357337
None,
358-
[(0, 1, None, ["test_another.py::test_fib_simple_case"])],
359338
),
360339
(
361340
5,
@@ -364,7 +343,6 @@ def test_process_pycoverage(self):
364343
[[0, 1, None, None, None]],
365344
None,
366345
None,
367-
[(0, 1, None, ["test_another.py::test_fib_simple_case"])],
368346
),
369347
(
370348
7,
@@ -373,7 +351,6 @@ def test_process_pycoverage(self):
373351
[[0, 1, None, None, None]],
374352
None,
375353
None,
376-
[(0, 1, None, ["Th2dMtk4M_codecov"])],
377354
),
378355
(
379356
8,
@@ -382,7 +359,6 @@ def test_process_pycoverage(self):
382359
[[0, 1, None, None, None]],
383360
None,
384361
None,
385-
[(0, 1, None, ["test_another.py::test_fib_bigger_cases"])],
386362
),
387363
],
388364
"test_source.py": [
@@ -393,7 +369,6 @@ def test_process_pycoverage(self):
393369
[[0, 1, None, None, None]],
394370
None,
395371
None,
396-
[(0, 1, None, ["Th2dMtk4M_codecov"])],
397372
),
398373
(
399374
4,
@@ -402,7 +377,6 @@ def test_process_pycoverage(self):
402377
[[0, 1, None, None, None]],
403378
None,
404379
None,
405-
[(0, 1, None, ["Th2dMtk4M_codecov"])],
406380
),
407381
(
408382
5,
@@ -411,7 +385,6 @@ def test_process_pycoverage(self):
411385
[[0, 1, None, None, None]],
412386
None,
413387
None,
414-
[(0, 1, None, ["test_source.py::test_some_code"])],
415388
),
416389
],
417390
},
@@ -488,7 +461,6 @@ def test_process_compressed_report(self):
488461
[[0, 1, None, None, None]],
489462
None,
490463
None,
491-
[(0, 1, None, ["Th2dMtk4M_codecov"])],
492464
),
493465
(
494466
2,
@@ -497,10 +469,6 @@ def test_process_compressed_report(self):
497469
[[0, 1, None, None, None]],
498470
None,
499471
None,
500-
[
501-
(0, 1, None, ["label_1"]),
502-
(0, 1, None, ["label_2"]),
503-
],
504472
),
505473
(
506474
3,
@@ -509,10 +477,6 @@ def test_process_compressed_report(self):
509477
[[0, 1, None, None, None]],
510478
None,
511479
None,
512-
[
513-
(0, 1, None, ["label_2"]),
514-
(0, 1, None, ["label_3"]),
515-
],
516480
),
517481
(
518482
4,
@@ -521,7 +485,6 @@ def test_process_compressed_report(self):
521485
[[0, 0, None, None, None]],
522486
None,
523487
None,
524-
[],
525488
),
526489
(
527490
5,
@@ -530,7 +493,6 @@ def test_process_compressed_report(self):
530493
[[0, 1, None, None, None]],
531494
None,
532495
None,
533-
[(0, 1, None, ["label_5"])],
534496
),
535497
],
536498
"__init__.py": [
@@ -541,7 +503,6 @@ def test_process_compressed_report(self):
541503
[[0, 0, None, None, None]],
542504
None,
543505
None,
544-
[],
545506
),
546507
(
547508
3,
@@ -550,7 +511,6 @@ def test_process_compressed_report(self):
550511
[[0, 0, None, None, None]],
551512
None,
552513
None,
553-
[],
554514
),
555515
(
556516
4,
@@ -559,7 +519,6 @@ def test_process_compressed_report(self):
559519
[[0, 0, None, None, None]],
560520
None,
561521
None,
562-
[],
563522
),
564523
(
565524
5,
@@ -568,7 +527,6 @@ def test_process_compressed_report(self):
568527
[[0, 0, None, None, None]],
569528
None,
570529
None,
571-
[],
572530
),
573531
],
574532
},

services/report/raw_upload_processor.py

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,10 @@
1717
log = logging.getLogger(__name__)
1818

1919

20-
@dataclass
21-
class SessionAdjustmentResult:
22-
fully_deleted_sessions: list[int]
23-
partially_deleted_sessions: list[int]
24-
25-
2620
@dataclass
2721
class UploadProcessingResult:
2822
report: Report # NOTE: this is just returning the input argument, and primarily used in tests
29-
session_adjustment: SessionAdjustmentResult
23+
deleted_sessions: set[int]
3024

3125

3226
@sentry_sdk.trace
@@ -121,37 +115,36 @@ def process_raw_upload(
121115
# Because we know that the processing was successful
122116
_sessionid, session = report.add_session(session, use_id_from_session=True)
123117
# Adjust sessions removed carryforward sessions that are being replaced
118+
deleted_sessions = set()
124119
if session.flags:
125-
session_adjustment = clear_carryforward_sessions(
120+
deleted_sessions = clear_carryforward_sessions(
126121
report, session.flags, commit_yaml
127122
)
128-
else:
129-
session_adjustment = SessionAdjustmentResult([], [])
130123

131124
report.merge(temporary_report, joined=joined)
132125
session.totals = temporary_report.totals
133126

134-
return UploadProcessingResult(report=report, session_adjustment=session_adjustment)
127+
return UploadProcessingResult(report=report, deleted_sessions=deleted_sessions)
135128

136129

137130
@sentry_sdk.trace
138131
def clear_carryforward_sessions(
139132
original_report: Report,
140133
to_merge_flags: list[str],
141134
current_yaml: UserYaml,
142-
) -> SessionAdjustmentResult:
135+
) -> set[int]:
136+
session_ids_to_fully_delete = set()
143137
to_fully_overwrite_flags = {
144138
f for f in to_merge_flags if current_yaml.flag_has_carryfoward(f)
145139
}
146140

147-
session_ids_to_fully_delete = []
148141
if to_fully_overwrite_flags:
149142
for session_id, session in original_report.sessions.items():
150143
if session.session_type == SessionType.carriedforward and session.flags:
151144
if any(f in to_fully_overwrite_flags for f in session.flags):
152-
session_ids_to_fully_delete.append(session_id)
145+
session_ids_to_fully_delete.add(session_id)
153146

154147
if session_ids_to_fully_delete:
155-
original_report.delete_multiple_sessions(session_ids_to_fully_delete)
148+
original_report.delete_multiple_sessions(list(session_ids_to_fully_delete))
156149

157-
return SessionAdjustmentResult(sorted(session_ids_to_fully_delete), [])
150+
return session_ids_to_fully_delete

services/report/tests/unit/test_process.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1109,8 +1109,7 @@ def test_process_raw_upload_with_carryforwarded_flags(self):
11091109
session=session,
11101110
)
11111111
report = result.report
1112-
assert result.session_adjustment.fully_deleted_sessions == [1]
1113-
assert result.session_adjustment.partially_deleted_sessions == []
1112+
assert result.deleted_sessions == {1}
11141113
assert sorted(report.sessions.keys()) == [0, session.id]
11151114
assert session.id == 2
11161115
assert report.sessions[session.id] == session

0 commit comments

Comments
 (0)