Skip to content

Commit cee50d4

Browse files
committed
Make all deserialize methods build the object
1 parent 8fd75ad commit cee50d4

File tree

5 files changed

+50
-16
lines changed

5 files changed

+50
-16
lines changed

python/TestHarness/resultsstore/storedresult.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,8 @@ def serialize(self) -> dict:
189189
"""Serialize the data into something that is JSON dumpable."""
190190
data = deepcopy(self.data)
191191

192+
data["serialized"] = {"check": self.check}
193+
192194
# Convert datetime to str that can be converted back
193195
data["time"] = str(data["time"])
194196
# Convert ObjectID to string id
@@ -197,13 +199,19 @@ def serialize(self) -> dict:
197199
return data
198200

199201
@staticmethod
200-
def deserialize(data: dict) -> dict:
201-
"""Deserialize the data serialized with serialize()."""
202+
def deserialize(data: dict) -> "StoredResult":
203+
"""Deserialize data from serialize() into a result."""
204+
assert isinstance(data, dict)
205+
202206
data = deepcopy(data)
203207

208+
serialized = data["serialized"]
209+
check = serialized["check"]
210+
del data["serialized"]
211+
204212
# Convert datetime str to datetime object
205213
data["time"] = datetime.fromisoformat(data["time"])
206214
# Convert string id to ObjectID
207215
data["_id"] = ObjectId(data["_id"])
208216

209-
return data
217+
return StoredResult(data, check=check)

python/TestHarness/tests/resultsstore/content/gold_results.json

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,10 @@
7272
"event_id": 260206,
7373
"event_cause": "push",
7474
"pr_num": null,
75-
"time": "2025-10-08 20:57:18.976000"
75+
"time": "2025-10-08 20:57:18.976000",
76+
"serialized": {
77+
"check": true
78+
}
7679
},
7780
"68e6141590b44073432086b9": {
7881
"_id": "68e6141590b44073432086b9",
@@ -147,7 +150,10 @@
147150
"event_id": 260038,
148151
"pr_num": null,
149152
"base_sha": "0d4abf2e847951e07f1000c85451192f0172456f",
150-
"civet_version": 5
153+
"civet_version": 5,
154+
"serialized": {
155+
"check": true
156+
}
151157
},
152158
"68dedf7cbe5697c197720bae": {
153159
"_id": "68dedf7cbe5697c197720bae",
@@ -222,7 +228,10 @@
222228
"event_id": 259309,
223229
"pr_num": null,
224230
"base_sha": "e353a7cacb94c988483cfa0b1f074f4fb4edbec8",
225-
"civet_version": 4
231+
"civet_version": 4,
232+
"serialized": {
233+
"check": true
234+
}
226235
},
227236
"68dac86a57e68e67a2888a74": {
228237
"_id": "68dac86a57e68e67a2888a74",
@@ -297,7 +306,10 @@
297306
"event_id": 258481,
298307
"pr_num": null,
299308
"base_sha": "683f2a61725790be34537345f8facfcb4ce77cbe",
300-
"civet_version": 3
309+
"civet_version": 3,
310+
"serialized": {
311+
"check": true
312+
}
301313
},
302314
"68658fcbc8ec62f893b8e307": {
303315
"_id": "68658fcbc8ec62f893b8e307",
@@ -371,7 +383,10 @@
371383
"event_cause": "push",
372384
"pr_num": null,
373385
"base_sha": "c85466a90bec562091c9e8ad2606cee92273e182",
374-
"civet_version": 2
386+
"civet_version": 2,
387+
"serialized": {
388+
"check": true
389+
}
375390
},
376391
"685c623b4022db39df9590c4": {
377392
"_id": "685c623b4022db39df9590c4",
@@ -443,7 +458,10 @@
443458
"event_sha": "3d48fa82c081e141fd86390dfb9edd1f11c984ca",
444459
"event_cause": "push",
445460
"pr_num": null,
446-
"base_sha": "45b8a536530388e7bb1ff563398b1e94f2d691fc"
461+
"base_sha": "45b8a536530388e7bb1ff563398b1e94f2d691fc",
462+
"serialized": {
463+
"check": true
464+
}
447465
},
448466
"685b0fdf4110325560e2cc30": {
449467
"_id": "685b0fdf4110325560e2cc30",
@@ -515,7 +533,10 @@
515533
"time": "2025-06-24 14:51:43.888000",
516534
"event_sha": "45b8a536530388e7bb1ff563398b1e94f2d691fc",
517535
"event_cause": "push",
518-
"pr_num": null
536+
"pr_num": null,
537+
"serialized": {
538+
"check": true
539+
}
519540
},
520541
"6857a572bbcb03d9dccfb1a8": {
521542
"_id": "6857a572bbcb03d9dccfb1a8",
@@ -586,7 +607,10 @@
586607
"time": "2025-06-22 00:40:50.747000",
587608
"event_sha": "968f537a3c89ffb556fb7da18da28da52b592ee0",
588609
"event_cause": "push",
589-
"pr_num": null
610+
"pr_num": null,
611+
"serialized": {
612+
"check": true
613+
}
590614
}
591615
},
592616
"tests": {

python/TestHarness/tests/resultsstore/test_gold.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,7 @@ def test_gold(self):
9393

9494
# Build StoredResult
9595
result_data = gold_result_data[result_id]
96-
data = StoredResult.deserialize(result_data)
97-
reader = ResultsReader("unused", FakeMongoClient())
98-
result = reader._build_result(data)
96+
result = StoredResult.deserialize(result_data)
9997

10098
# Check StoredResult
10199
self.assertEqual(result.id, gold_result.id)

python/TestHarness/tests/resultsstore/test_storedresult.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,5 +267,6 @@ def test_serialize_deserialize(self):
267267
serialized = result.serialize()
268268
dumped = json.dumps(serialized)
269269
loaded = json.loads(dumped)
270-
deserialized = StoredResult.deserialize(loaded)
271-
self.assertEqual(result.data, deserialized)
270+
new_result = StoredResult.deserialize(loaded)
271+
self.assertEqual(result.data, new_result.data)
272+
self.assertEqual(result.check, new_result.check)

python/TestHarness/tests/resultsstore/test_storedtestresult.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -638,6 +638,9 @@ def run_test_serialize_deserialize(self, **kwargs):
638638
loaded = json.loads(dumped)
639639
built = StoredTestResult.deserialize(loaded, test.result)
640640
self.assertEqual(built.data, test.data)
641+
self.assertEqual(built.name, test.name)
642+
self.assertEqual(built.result, test.result)
643+
self.assertEqual(built._data_filters, test._data_filters)
641644

642645
def test_serialize_deserialize_tests_within(self):
643646
"""Test serialize() and deserialize() with tests stored within the result."""

0 commit comments

Comments
 (0)