Commit 6e453c2b by Diana Huang

Clean up and fix some peer grading tests.

parent e467c057
...@@ -115,7 +115,7 @@ class MockPeerGradingService(object): ...@@ -115,7 +115,7 @@ class MockPeerGradingService(object):
'max_score': 4}) 'max_score': 4})
def save_grade(self, location, grader_id, submission_id, def save_grade(self, location, grader_id, submission_id,
score, feedback, submission_key): score, feedback, submission_key, rubric_scores, submission_flagged):
return json.dumps({'success': True}) return json.dumps({'success': True})
def is_student_calibrated(self, problem_location, grader_id): def is_student_calibrated(self, problem_location, grader_id):
...@@ -131,7 +131,8 @@ class MockPeerGradingService(object): ...@@ -131,7 +131,8 @@ class MockPeerGradingService(object):
'max_score': 4}) 'max_score': 4})
def save_calibration_essay(self, problem_location, grader_id, def save_calibration_essay(self, problem_location, grader_id,
calibration_essay_id, submission_key, score, feedback): calibration_essay_id, submission_key, score,
feedback, rubric_scores):
return {'success': True, 'actual_score': 2} return {'success': True, 'actual_score': 2}
def get_problem_list(self, course_id, grader_id): def get_problem_list(self, course_id, grader_id):
......
...@@ -15,7 +15,7 @@ import courseware.tests.tests as ct ...@@ -15,7 +15,7 @@ import courseware.tests.tests as ct
from xmodule.modulestore.django import modulestore from xmodule.modulestore.django import modulestore
import xmodule.modulestore.django import xmodule.modulestore.django
from nose import SkipTest from nose import SkipTest
from mock import patch, Mock from mock import patch, Mock, MagicMock
import json import json
from xmodule.x_module import ModuleSystem from xmodule.x_module import ModuleSystem
from mitxmako.shortcuts import render_to_string from mitxmako.shortcuts import render_to_string
...@@ -164,23 +164,35 @@ class TestPeerGradingService(ct.PageLoader): ...@@ -164,23 +164,35 @@ class TestPeerGradingService(ct.PageLoader):
def test_get_next_submission_missing_location(self): def test_get_next_submission_missing_location(self):
data = {} data = {}
r = self.peer_module.get_next_submission(data) d = self.peer_module.get_next_submission(data)
d = r
self.assertFalse(d['success']) self.assertFalse(d['success'])
self.assertEqual(d['error'], "Missing required keys: location") self.assertEqual(d['error'], "Missing required keys: location")
def test_save_grade_success(self): def test_save_grade_success(self):
raise SkipTest() data = {
data = 'rubric_scores[]=1|rubric_scores[]=2|location=' + self.location + '|submission_id=1|submission_key=fake key|score=2|feedback=feedback|submission_flagged=False' 'rubric_scores[]': [0, 0],
qdict = QueryDict(data.replace("|", "&")) 'location': self.location,
'submission_id': 1,
'submission_key': 'fake key',
'score': 2,
'feedback': 'feedback',
'submission_flagged': 'false'
}
qdict = MagicMock()
def fake_get_item(key):
return data[key]
qdict.__getitem__.side_effect = fake_get_item
qdict.getlist = fake_get_item
qdict.keys = data.keys
r = self.peer_module.save_grade(qdict) r = self.peer_module.save_grade(qdict)
d = r d = json.loads(r)
self.assertTrue(d['success']) self.assertTrue(d['success'])
def test_save_grade_missing_keys(self): def test_save_grade_missing_keys(self):
data = {} data = {}
r = self.peer_module.save_grade(data) d = self.peer_module.save_grade(data)
d = r
self.assertFalse(d['success']) self.assertFalse(d['success'])
self.assertTrue(d['error'].find('Missing required keys:') > -1) self.assertTrue(d['error'].find('Missing required keys:') > -1)
...@@ -193,8 +205,7 @@ class TestPeerGradingService(ct.PageLoader): ...@@ -193,8 +205,7 @@ class TestPeerGradingService(ct.PageLoader):
def test_is_calibrated_failure(self): def test_is_calibrated_failure(self):
data = {} data = {}
r = self.peer_module.is_student_calibrated(data) d = self.peer_module.is_student_calibrated(data)
d = r
self.assertFalse(d['success']) self.assertFalse(d['success'])
self.assertFalse('calibrated' in d) self.assertFalse('calibrated' in d)
...@@ -214,25 +225,36 @@ class TestPeerGradingService(ct.PageLoader): ...@@ -214,25 +225,36 @@ class TestPeerGradingService(ct.PageLoader):
def test_show_calibration_essay_missing_key(self): def test_show_calibration_essay_missing_key(self):
data = {} data = {}
r = self.peer_module.show_calibration_essay(data) d = self.peer_module.show_calibration_essay(data)
d = r
self.assertFalse(d['success']) self.assertFalse(d['success'])
self.assertEqual(d['error'], "Missing required keys: location") self.assertEqual(d['error'], "Missing required keys: location")
def test_save_calibration_essay_success(self): def test_save_calibration_essay_success(self):
raise SkipTest() data = {
data = 'rubric_scores[]=1|rubric_scores[]=2|location=' + self.location + '|submission_id=1|submission_key=fake key|score=2|feedback=feedback|submission_flagged=False' 'rubric_scores[]': [0, 0],
qdict = QueryDict(data.replace("|", "&")) 'location': self.location,
r = self.peer_module.save_calibration_essay(qdict) 'submission_id': 1,
d = r 'submission_key': 'fake key',
'score': 2,
'feedback': 'feedback',
'submission_flagged': 'false'
}
qdict = MagicMock()
def fake_get_item(key):
return data[key]
qdict.__getitem__.side_effect = fake_get_item
qdict.getlist = fake_get_item
qdict.keys = data.keys
d = self.peer_module.save_calibration_essay(qdict)
self.assertTrue(d['success']) self.assertTrue(d['success'])
self.assertTrue('actual_score' in d) self.assertTrue('actual_score' in d)
def test_save_calibration_essay_missing_keys(self): def test_save_calibration_essay_missing_keys(self):
data = {} data = {}
r = self.peer_module.save_calibration_essay(data) d = self.peer_module.save_calibration_essay(data)
d = r
self.assertFalse(d['success']) self.assertFalse(d['success'])
self.assertTrue(d['error'].find('Missing required keys:') > -1) self.assertTrue(d['error'].find('Missing required keys:') > -1)
self.assertFalse('actual_score' in d) self.assertFalse('actual_score' in d)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment