Skip to content

Commit 1e08f2c

Browse files
kkoehnMrSerth
authored andcommitted
add hidden_feedback to custom CodeOcean test-attributes
1 parent 122580b commit 1e08f2c

File tree

4 files changed

+12
-4
lines changed

4 files changed

+12
-4
lines changed

app/services/proforma_service/convert_exercise_to_task.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ def test_meta_data(file)
109109
{
110110
'@@order' => %w[test-meta-data],
111111
'test-meta-data' => {
112-
'@@order' => %w[CodeOcean:feedback-message CodeOcean:weight],
112+
'@@order' => %w[CodeOcean:feedback-message CodeOcean:weight CodeOcean:hidden-feedback],
113113
'@xmlns' => {'CodeOcean' => 'codeocean.openhpi.de'},
114114
'CodeOcean:feedback-message' => {
115115
'@@order' => %w[$1],
@@ -119,6 +119,10 @@ def test_meta_data(file)
119119
'@@order' => %w[$1],
120120
'$1' => file.weight,
121121
},
122+
'CodeOcean:hidden-feedback' => {
123+
'@@order' => %w[$1],
124+
'$1' => file.hidden_feedback,
125+
},
122126
},
123127
}
124128
end

app/services/proforma_service/convert_task_to_exercise.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ def test_files
6868
task_files.delete(test_object.files.first.id).tap do |file|
6969
file.weight = extract_meta_data(test_object.meta_data&.dig('test-meta-data'), 'weight').presence || 1.0
7070
file.feedback_message = extract_meta_data(test_object.meta_data&.dig('test-meta-data'), 'feedback-message').presence || 'Feedback'
71+
file.hidden_feedback = extract_meta_data(test_object.meta_data&.dig('test-meta-data'), 'hidden-feedback').presence || false
7172
file.role ||= 'teacher_defined_test'
7273
end
7374
end

spec/services/proforma_service/convert_exercise_to_task_spec.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@
214214

215215
context 'when exercise has a test' do
216216
let(:tests) { [test_file] }
217-
let(:test_file) { build(:test_file) }
217+
let(:test_file) { build(:test_file, hidden_feedback: true) }
218218
# let(:file) { FactoryBot.build(:codeharbor_test_file) }
219219

220220
it 'creates a task with one test' do
@@ -229,7 +229,8 @@
229229
meta_data: a_hash_including(
230230
'test-meta-data' => a_hash_including(
231231
'CodeOcean:feedback-message' => {'$1' => 'feedback_message', '@@order' => ['$1']},
232-
'CodeOcean:weight' => {'$1' => test_file.weight, '@@order' => ['$1']}
232+
'CodeOcean:weight' => {'$1' => test_file.weight, '@@order' => ['$1']},
233+
'CodeOcean:hidden-feedback' => {'$1' => test_file.hidden_feedback, '@@order' => ['$1']}
233234
)
234235
)
235236
)

spec/services/proforma_service/convert_task_to_exercise_spec.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,9 +361,10 @@
361361
files: test_files,
362362
meta_data: {
363363
'test-meta-data' => {
364-
'@@order' => %w[CodeOcean:feedback-message CodeOcean:weight],
364+
'@@order' => %w[CodeOcean:feedback-message CodeOcean:weight CodeOcean:hidden-feedback],
365365
'CodeOcean:feedback-message' => {'$1' => 'feedback-message', '@@order' => ['$1']},
366366
'CodeOcean:weight' => {'$1' => '0.7', '@@order' => ['$1']},
367+
'CodeOcean:hidden-feedback' => {'$1' => 'true', '@@order' => ['$1']},
367368
},
368369
}
369370
)
@@ -396,6 +397,7 @@
396397
role: 'teacher_defined_test',
397398
hidden: true,
398399
read_only: true,
400+
hidden_feedback: true,
399401
file_type: be_a(FileType).and(have_attributes(file_extension: '.txt'))
400402
)
401403
end

0 commit comments

Comments
 (0)