Skip to content

Commit 3465d28

Browse files
iHiDclaude
andauthored
Handle Array version in test run raw_results (#8618)
When tooling runners return version as an array instead of a scalar, `raw_results[:version].to_i` raises NoMethodError. Use `Array()` to safely unwrap the value before converting to integer. Closes #8611 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 1ce6aa7 commit 3465d28

2 files changed

Lines changed: 6 additions & 1 deletion

File tree

app/models/submission/test_run.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class Submission::TestRun < ApplicationRecord
1313
delegate :solution, to: :submission
1414

1515
before_create do
16-
self.version = raw_results[:version].to_i
16+
self.version = Array(raw_results[:version]).first.to_i
1717
self.message = raw_results[:message] unless self.message
1818
self.output = raw_results[:output] unless self.output
1919
self.status = raw_results.fetch(:status, :error) unless self.status

test/models/submission/test_run_test.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,11 @@ class Submission::TestRunTest < ActiveSupport::TestCase
230230
assert_equal submission.track, test_run.track
231231
end
232232

233+
test "handles version as array" do
234+
tr = create(:submission_test_run, raw_results: { version: [3], status: :pass })
235+
assert_equal 3, tr.version
236+
end
237+
233238
test "truncate message" do
234239
message = 'a' * 66_000
235240
test_run = create(:submission_test_run, raw_results: { message: })

0 commit comments

Comments
 (0)