fix namespacing, specs

This commit is contained in:
Karol
2021-11-27 21:08:52 +01:00
parent d32eb0fc4d
commit 2c7748ed12
5 changed files with 56 additions and 28 deletions

View File

@ -22,12 +22,19 @@ module ProformaService
{
title: @exercise.title,
description: @exercise.description,
internal_description: @exercise.instructions,
internal_description: nil,
# ?: @exercise.instructions, store in meta-data
# proglang: proglang, where can we get this information?
files: task_files,
tests: tests,
uuid: uuid,
language: DEFAULT_LANGUAGE,
model_solutions: model_solutions,
meta_data: {
openHPI: {
instructions: @exercise.instructions,
},
},
}.compact
)
end
@ -69,8 +76,10 @@ module ProformaService
end
def test_meta_data(file)
[{namespace: 'openHPI', key: 'entry-point', value: file.filepath},
{namespace: 'openHPI', key: 'feedback-message', value: file.feedback_message}]
{openHPI: {
'entry-point': file.filepath,
'feedback-message': file.feedback_message,
}}
end
def test_file(file)

View File

@ -21,7 +21,7 @@ module ProformaService
user: @user,
title: @task.title,
description: @task.description,
instructions: @task.internal_description,
instructions: @task.meta_data&.dig(:openHPI)&.dig(:instructions),
files: files
)
end
@ -34,7 +34,7 @@ module ProformaService
@task.tests.map do |test_object|
task_files.delete(test_object.files.first.id).tap do |file|
file.weight = 1.0
file.feedback_message = test_object.meta_data.detect {|meta_data| meta_data[:namespace] == 'openHPI' && meta_data[:key] == 'feedback-message' }[:value]
file.feedback_message = test_object.meta_data[:openHPI]&.dig(:'feedback-message')
end
end
end

View File

@ -30,13 +30,18 @@ RSpec.describe ProformaService::ConvertExerciseToTask do
expect(task).to have_attributes(
title: exercise.title,
description: exercise.description,
internal_description: exercise.instructions,
# internal_description: exercise.instructions,
# proglang: {
# name: exercise.execution_environment.language,
# version: exercise.execution_environment.version
# },
uuid: exercise.uuid,
language: described_class::DEFAULT_LANGUAGE,
meta_data: {
openHPI: {
instructions: exercise.instructions,
},
},
# parent_uuid: exercise.clone_relations.first&.origin&.uuid,
files: [],
tests: [],
@ -161,8 +166,12 @@ RSpec.describe ProformaService::ConvertExerciseToTask do
id: test_file.id,
title: test_file.name,
files: have(1).item,
meta_data: [{key: 'entry-point', namespace: 'openHPI', value: test_file.filepath},
{key: 'feedback-message', namespace: 'openHPI', value: 'feedback_message'}]
meta_data: {
openHPI: {
'entry-point': test_file.filepath,
'feedback-message': 'feedback_message',
},
}
)
end

View File

@ -34,11 +34,15 @@ describe ProformaService::ConvertTaskToExercise do
Proforma::Task.new(
title: 'title',
description: 'description',
internal_description: 'internal_description',
proglang: {name: 'proglang-name', version: 'proglang-version'},
# proglang: {name: 'proglang-name', version: 'proglang-version'},
uuid: 'uuid',
parent_uuid: 'parent_uuid',
language: 'language',
meta_data: {
openHPI: {
instructions: 'instructions',
},
},
model_solutions: model_solutions,
files: files,
tests: tests
@ -54,7 +58,7 @@ describe ProformaService::ConvertTaskToExercise do
expect(convert_to_exercise_service).to have_attributes(
title: 'title',
description: 'description',
instructions: 'internal_description',
instructions: 'instructions',
execution_environment: be_blank,
uuid: be_blank,
unpublished: true,
@ -226,14 +230,15 @@ describe ProformaService::ConvertTaskToExercise do
id: 'test-id',
title: 'title',
description: 'description',
internal_description: 'internal_description',
test_type: 'test_type',
files: test_files,
meta_data: [
{namespace: 'openHPI', key: 'feedback-message', value: 'feedback-message'},
{namespace: 'openHPI', key: 'testing-framework', value: 'testing-framework'},
{namespace: 'openHPI', key: 'testing-framework-version', value: 'testing-framework-version'},
]
meta_data: {
openHPI: {
'feedback-message': 'feedback-message',
'testing-framework': 'testing-framework',
'testing-framework-version': 'testing-framework-version',
},
}
)
end
@ -272,11 +277,13 @@ describe ProformaService::ConvertTaskToExercise do
let(:test2) do
Proforma::Test.new(
files: test_files2,
meta_data: [
{namespace: 'openHPI', key: 'feedback-message', value: 'feedback-message'},
{namespace: 'openHPI', key: 'testing-framework', value: 'testing-framework'},
{namespace: 'openHPI', key: 'testing-framework-version', value: 'testing-framework-version'},
]
meta_data: {
openHPI: {
'feedback-message': 'feedback-message',
'testing-framework': 'testing-framework',
'testing-framework-version': 'testing-framework-version',
},
}
)
end
let(:test_files2) { [test_file2] }
@ -317,7 +324,7 @@ describe ProformaService::ConvertTaskToExercise do
id: exercise.id,
title: task.title,
description: task.description,
instructions: task.internal_description,
instructions: task.meta_data[:openHPI][:instructions],
execution_environment: exercise.execution_environment,
uuid: exercise.uuid,
user: exercise.user,
@ -352,11 +359,13 @@ describe ProformaService::ConvertTaskToExercise do
internal_description: 'regular_file',
test_type: 'test_type',
files: test_files,
meta_data: [
{namespace: 'openHPI', key: 'feedback-message', value: 'feedback-message'},
{namespace: 'openHPI', key: 'testing-framework', value: 'testing-framework'},
{namespace: 'openHPI', key: 'testing-framework-version', value: 'testing-framework-version'},
]
meta_data: {
openHPI: {
'feedback-message': 'feedback-message',
'testing-framework': 'testing-framework',
'testing-framework-version': 'testing-framework-version',
},
}
)
end
let(:test_files) { [test_file] }

View File

@ -37,5 +37,6 @@ describe ProformaService::ExportTask do
export_task
expect(exporter).to have_received(:perform)
end
# TODO more tests?!
end
end