Skip to content

Commit bbc88e4

Browse files
committed
Implement workaround for duplicate fields
Signed-off-by: Jared O'Connell <[email protected]>
1 parent 32e4909 commit bbc88e4

File tree

1 file changed

+20
-9
lines changed

1 file changed

+20
-9
lines changed

tests/unit/benchmark/test_output.py

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,28 @@ def test_generative_benchmark_invalid_initilization():
2929
GenerativeBenchmarksReport(benchmarks="invalid_type") # type: ignore[arg-type]
3030

3131

32-
@pytest.mark.skip(reason="Computed fields are duplicated.")
3332
def test_generative_benchmark_marshalling():
3433
mock_benchmark = mock_generative_benchmark()
3534
report = GenerativeBenchmarksReport(benchmarks=[mock_benchmark])
3635

3736
serialized = report.model_dump()
37+
print("Serialized: ", serialized)
3838
deserialized = GenerativeBenchmarksReport.model_validate(serialized)
39+
print("Deserialized: ", deserialized)
3940
deserialized_benchmark = deserialized.benchmarks[0]
41+
serialized = deserialized.model_dump()
42+
print("Re-serialized: ", serialized)
4043

41-
for field in mock_benchmark.model_fields_set:
42-
assert getattr(mock_benchmark, field) == getattr(deserialized_benchmark, field)
44+
print("Fields:", {name: getattr(deserialized, name) for name in deserialized.model_fields})
45+
print("Extras:", deserialized.__pydantic_extra__)
46+
47+
48+
#for field in mock_benchmark.model_fields_set:
49+
# assert getattr(mock_benchmark, field) == getattr(deserialized_benchmark, field)
50+
# Workaround for duplicate fields for computed fields.
51+
assert mock_benchmark.model_dump() == deserialized_benchmark.model_dump()
4352

4453

45-
@pytest.mark.skip(reason="Computed fields are duplicated.")
4654
def test_file_json():
4755
mock_benchmark = mock_generative_benchmark()
4856
report = GenerativeBenchmarksReport(benchmarks=[mock_benchmark])
@@ -57,13 +65,14 @@ def test_file_json():
5765
loaded_report = GenerativeBenchmarksReport.load_file(mock_path)
5866
loaded_benchmark = loaded_report.benchmarks[0]
5967

60-
for field in mock_benchmark.model_fields_set:
61-
assert getattr(mock_benchmark, field) == getattr(loaded_benchmark, field)
68+
#for field in mock_benchmark.model_fields_set:
69+
# assert getattr(mock_benchmark, field) == getattr(loaded_benchmark, field)
70+
# Workaround for duplicate fields for computed fields.
71+
assert mock_benchmark.model_dump() == loaded_benchmark.model_dump()
6272

6373
mock_path.unlink()
6474

6575

66-
@pytest.mark.skip(reason="Computed fields are duplicated.")
6776
def test_file_yaml():
6877
mock_benchmark = mock_generative_benchmark()
6978
report = GenerativeBenchmarksReport(benchmarks=[mock_benchmark])
@@ -78,8 +87,10 @@ def test_file_yaml():
7887
loaded_report = GenerativeBenchmarksReport.load_file(mock_path)
7988
loaded_benchmark = loaded_report.benchmarks[0]
8089

81-
for field in mock_benchmark.model_fields_set:
82-
assert getattr(mock_benchmark, field) == getattr(loaded_benchmark, field)
90+
#for field in mock_benchmark.model_fields_set:
91+
# assert getattr(mock_benchmark, field) == getattr(loaded_benchmark, field)
92+
# Workaround for duplicate fields for computed fields.
93+
assert mock_benchmark.model_dump() == loaded_benchmark.model_dump()
8394

8495
mock_path.unlink()
8596

0 commit comments

Comments
 (0)