add hidden_feedback to custom CodeOcean test-attributes
This commit is contained in:
@ -109,7 +109,7 @@ module ProformaService
|
|||||||
{
|
{
|
||||||
'@@order' => %w[test-meta-data],
|
'@@order' => %w[test-meta-data],
|
||||||
'test-meta-data' => {
|
'test-meta-data' => {
|
||||||
'@@order' => %w[CodeOcean:feedback-message CodeOcean:weight],
|
'@@order' => %w[CodeOcean:feedback-message CodeOcean:weight CodeOcean:hidden-feedback],
|
||||||
'@xmlns' => {'CodeOcean' => 'codeocean.openhpi.de'},
|
'@xmlns' => {'CodeOcean' => 'codeocean.openhpi.de'},
|
||||||
'CodeOcean:feedback-message' => {
|
'CodeOcean:feedback-message' => {
|
||||||
'@@order' => %w[$1],
|
'@@order' => %w[$1],
|
||||||
@ -119,6 +119,10 @@ module ProformaService
|
|||||||
'@@order' => %w[$1],
|
'@@order' => %w[$1],
|
||||||
'$1' => file.weight,
|
'$1' => file.weight,
|
||||||
},
|
},
|
||||||
|
'CodeOcean:hidden-feedback' => {
|
||||||
|
'@@order' => %w[$1],
|
||||||
|
'$1' => file.hidden_feedback,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
@ -68,6 +68,7 @@ module ProformaService
|
|||||||
task_files.delete(test_object.files.first.id).tap do |file|
|
task_files.delete(test_object.files.first.id).tap do |file|
|
||||||
file.weight = extract_meta_data(test_object.meta_data&.dig('test-meta-data'), 'weight').presence || 1.0
|
file.weight = extract_meta_data(test_object.meta_data&.dig('test-meta-data'), 'weight').presence || 1.0
|
||||||
file.feedback_message = extract_meta_data(test_object.meta_data&.dig('test-meta-data'), 'feedback-message').presence || 'Feedback'
|
file.feedback_message = extract_meta_data(test_object.meta_data&.dig('test-meta-data'), 'feedback-message').presence || 'Feedback'
|
||||||
|
file.hidden_feedback = extract_meta_data(test_object.meta_data&.dig('test-meta-data'), 'hidden-feedback').presence || false
|
||||||
file.role ||= 'teacher_defined_test'
|
file.role ||= 'teacher_defined_test'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -214,7 +214,7 @@ RSpec.describe ProformaService::ConvertExerciseToTask do
|
|||||||
|
|
||||||
context 'when exercise has a test' do
|
context 'when exercise has a test' do
|
||||||
let(:tests) { [test_file] }
|
let(:tests) { [test_file] }
|
||||||
let(:test_file) { build(:test_file) }
|
let(:test_file) { build(:test_file, hidden_feedback: true) }
|
||||||
# let(:file) { FactoryBot.build(:codeharbor_test_file) }
|
# let(:file) { FactoryBot.build(:codeharbor_test_file) }
|
||||||
|
|
||||||
it 'creates a task with one test' do
|
it 'creates a task with one test' do
|
||||||
@ -229,7 +229,8 @@ RSpec.describe ProformaService::ConvertExerciseToTask do
|
|||||||
meta_data: a_hash_including(
|
meta_data: a_hash_including(
|
||||||
'test-meta-data' => a_hash_including(
|
'test-meta-data' => a_hash_including(
|
||||||
'CodeOcean:feedback-message' => {'$1' => 'feedback_message', '@@order' => ['$1']},
|
'CodeOcean:feedback-message' => {'$1' => 'feedback_message', '@@order' => ['$1']},
|
||||||
'CodeOcean:weight' => {'$1' => test_file.weight, '@@order' => ['$1']}
|
'CodeOcean:weight' => {'$1' => test_file.weight, '@@order' => ['$1']},
|
||||||
|
'CodeOcean:hidden-feedback' => {'$1' => test_file.hidden_feedback, '@@order' => ['$1']}
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -361,9 +361,10 @@ RSpec.describe ProformaService::ConvertTaskToExercise do
|
|||||||
files: test_files,
|
files: test_files,
|
||||||
meta_data: {
|
meta_data: {
|
||||||
'test-meta-data' => {
|
'test-meta-data' => {
|
||||||
'@@order' => %w[CodeOcean:feedback-message CodeOcean:weight],
|
'@@order' => %w[CodeOcean:feedback-message CodeOcean:weight CodeOcean:hidden-feedback],
|
||||||
'CodeOcean:feedback-message' => {'$1' => 'feedback-message', '@@order' => ['$1']},
|
'CodeOcean:feedback-message' => {'$1' => 'feedback-message', '@@order' => ['$1']},
|
||||||
'CodeOcean:weight' => {'$1' => '0.7', '@@order' => ['$1']},
|
'CodeOcean:weight' => {'$1' => '0.7', '@@order' => ['$1']},
|
||||||
|
'CodeOcean:hidden-feedback' => {'$1' => 'true', '@@order' => ['$1']},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@ -396,6 +397,7 @@ RSpec.describe ProformaService::ConvertTaskToExercise do
|
|||||||
role: 'teacher_defined_test',
|
role: 'teacher_defined_test',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
read_only: true,
|
read_only: true,
|
||||||
|
hidden_feedback: true,
|
||||||
file_type: be_a(FileType).and(have_attributes(file_extension: '.txt'))
|
file_type: be_a(FileType).and(have_attributes(file_extension: '.txt'))
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user