|
|
require File.join(File.dirname(__FILE__),'spec_helper')
|
|
|
require File.join(File.dirname(__FILE__),'engine_spec_helper')
|
|
|
|
|
|
describe "A grader runner, when grade task" do
|
|
|
|
|
|
include GraderEngineHelperMethods
|
|
|
|
|
|
before(:each) do
|
|
|
@config = Grader::Configuration.get_instance
|
|
|
@problem_test_normal = stub(Problem,
|
|
|
:id => 1, :name => 'test_normal',
|
|
|
:full_score => 135)
|
|
|
@user_user1 = stub(User,
|
|
|
:id => 1, :login => 'user1')
|
|
|
|
|
|
@engine = Grader::Engine.new
|
|
|
@runner = Grader::Runner.new(@engine)
|
|
|
init_sandbox
|
|
|
end
|
|
|
|
|
|
it "should just return nil when there is no submission" do
|
|
|
Task.should_receive(:get_inqueue_and_change_status).and_return(nil)
|
|
|
@runner.grade_oldest_task.should be_nil
|
|
|
end
|
|
|
|
|
|
it "should grade oldest task in queue" do
|
|
|
submission = create_normal_submission_mock_from_file("test1_correct.c")
|
|
|
|
|
|
submission.should_receive(:graded_at=)
|
|
|
submission.should_receive(:points=).with(135)
|
|
|
submission.should_receive(:grader_comment=).with(/^PASSED/)
|
|
|
submission.should_receive(:compiler_message=).with('')
|
|
|
submission.should_receive(:save)
|
|
|
|
|
|
# mock task
|
|
|
task = stub(Task,:id => 1, :submission_id => submission.id)
|
|
|
Task.should_receive(:get_inqueue_and_change_status).and_return(task)
|
|
|
task.should_receive(:status_complete!)
|
|
|
|
|
|
# mock Submission
|
|
|
Submission.should_receive(:find).
|
|
|
with(task.submission_id).
|
|
|
and_return(submission)
|
|
|
|
|
|
@runner.grade_oldest_task
|
|
|
end
|
|
|
|
|
|
# to be converted
|
|
|
def test_grade_oldest_task_with_grader_process
|
|
|
grader_process = stub
|
|
|
grader_process.expects(:report_active)
|
|
|
|
|
|
@runner = Grader::Runner.new(@engine,grader_process)
|
|
|
|
|
|
test_grade_oldest_task
|
|
|
end
|
|
|
|
|
|
protected
|
|
|
|
|
|
def create_normal_submission_mock_from_file(source_fname)
|
|
|
create_submission_from_file(1, @user_user1, @problem_test_normal, source_fname)
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
|