Commit c70f6a9d by Eric Fischer

refactor common tests

parent f3871af3
...@@ -386,18 +386,25 @@ class PeerAssessmentTest(OpenAssessmentTest): ...@@ -386,18 +386,25 @@ class PeerAssessmentTest(OpenAssessmentTest):
self.do_peer_assessment() self.do_peer_assessment()
class PeerAssessmentTestStaffOverride(OpenAssessmentTest): class StaffOverrideTest(OpenAssessmentTest):
""" """
Test setting a staff override on a problem which requires peer assessment. Test setting a staff override on a problem which requires peer or self assessment.
This is used as a base class, as the problem type defined by subclasses must be known in setUp().
""" """
def __init__(self, *args, **kwargs):
super(StaffOverrideTest, self).__init__(*args, **kwargs)
self.problem_type = None
def setUp(self): def setUp(self):
super(PeerAssessmentTestStaffOverride, self).setUp('peer_only', staff=True) if self.problem_type is None:
self.fail("Please define self.problem_type in a sub-class")
super(StaffOverrideTest, self).setUp(self.problem_type, staff=True)
self.staff_area_page = StaffAreaPage(self.browser, self.problem_loc) self.staff_area_page = StaffAreaPage(self.browser, self.problem_loc)
@retry() @retry()
@attr('acceptance') @attr('acceptance')
def test_staff_override(self): def _test_staff_override(self):
""" """
Scenario: staff can override a learner's grade Scenario: staff can override a learner's grade
...@@ -405,11 +412,7 @@ class PeerAssessmentTestStaffOverride(OpenAssessmentTest): ...@@ -405,11 +412,7 @@ class PeerAssessmentTestStaffOverride(OpenAssessmentTest):
And if I create a response to the problem And if I create a response to the problem
Then there is no Staff Grade section present Then there is no Staff Grade section present
And if a staff member creates a grade override And if a staff member creates a grade override
Then when I refresh the page, I see that a staff override exists Then I can see my final grade, even though no peers have assessed me
And the message says that I must complete my steps to view the grade
And if I submit required peer assessments
Then the Staff Grade section is marked complete with no message
And I can see my final grade, even though no peers have assessed me
""" """
# Create a submission # Create a submission
self.auto_auth_page.visit() self.auto_auth_page.visit()
...@@ -430,6 +433,30 @@ class PeerAssessmentTestStaffOverride(OpenAssessmentTest): ...@@ -430,6 +433,30 @@ class PeerAssessmentTestStaffOverride(OpenAssessmentTest):
self.assertEqual(self.STAFF_OVERRIDE_SCORE, self.grade_page.wait_for_page().score) self.assertEqual(self.STAFF_OVERRIDE_SCORE, self.grade_page.wait_for_page().score)
class StaffOverrideSelfTest(StaffOverrideTest):
"""
Subclass of StaffOverrideTest for a 'self_only' problem.
"""
def __init__(self, *args, **kwargs):
super(StaffOverrideSelfTest, self).__init__(*args, **kwargs)
self.problem_type = 'self_only'
def test_staff_override(self):
super(StaffOverrideSelfTest, self)._test_staff_override()
class StaffOverridePeerTest(StaffOverrideTest):
"""
Subclass of StaffOverrideTest for a 'peer_only' problem.
"""
def __init__(self, *args, **kwargs):
super(StaffOverridePeerTest, self).__init__(*args, **kwargs)
self.problem_type = 'peer_only'
def test_staff_override(self):
super(StaffOverridePeerTest, self)._test_staff_override()
class StudentTrainingTest(OpenAssessmentTest): class StudentTrainingTest(OpenAssessmentTest):
""" """
Test student training (the "learning to assess" step). Test student training (the "learning to assess" step).
...@@ -667,43 +694,6 @@ class StaffAreaTest(OpenAssessmentTest): ...@@ -667,43 +694,6 @@ class StaffAreaTest(OpenAssessmentTest):
@retry() @retry()
@attr('acceptance') @attr('acceptance')
def test_staff_grade_override(self):
"""
Scenario: the staff grade section displays correctly
Given I am viewing a new self assessment problem as a learner
Then there is no Staff Grade section present
And if I create a response to the problem
Then there is no Staff Grade section present
And if a staff member creates a grade override
Then when I refresh the page, I see that a staff override exists
And the message says that I must complete my steps to view the grade
And if I submit my self-assessment
Then the Staff Grade section is marked complete with no message
And I can see my final grade
"""
# View the problem-- no Staff Grade area.
self.auto_auth_page.visit()
username, _ = self.auto_auth_page.get_username_and_email()
self.submission_page.visit()
self.assertFalse(self.staff_asmnt_page.is_browser_on_page())
self.submission_page.submit_response(self.SUBMISSION)
self.assertTrue(self.submission_page.has_submitted)
self.assertFalse(self.staff_asmnt_page.is_browser_on_page())
# Submit a staff override
self.do_staff_override(username, self.STAFF_OVERRIDE_STAFF_AREA_NOT_COMPLETE)
# Refresh the page so the learner sees the Staff Grade section.
self.refresh_page()
self._verify_staff_grade_section(self.STAFF_GRADE_EXISTS)
# Verify the staff override grade
self.assertEqual(self.STAFF_OVERRIDE_SCORE, self.grade_page.wait_for_page().score)
@retry()
@attr('acceptance')
def test_staff_grade_override_cancelled(self): def test_staff_grade_override_cancelled(self):
""" """
Scenario: the staff grade section displays cancelled when the submission is cancelled Scenario: the staff grade section displays cancelled when the submission is cancelled
...@@ -1040,10 +1030,7 @@ class FullWorkflowOverrideTest(OpenAssessmentTest, FullWorkflowMixin): ...@@ -1040,10 +1030,7 @@ class FullWorkflowOverrideTest(OpenAssessmentTest, FullWorkflowMixin):
Given that I have created a submission Given that I have created a submission
Then I see no score yet Then I see no score yet
And when a staff member creates a grade override And when a staff member creates a grade override
Then I see that an override exists, but I cannot see the score Then I see my staff override score
And when a second learner creates a submission
Then I can complete my required steps (training, self assessment, peer assesssment)
And I see my staff override score
And all fields in the staff area tool are correct And all fields in the staff area tool are correct
""" """
# Create only the initial submission before doing the staff override. # Create only the initial submission before doing the staff override.
...@@ -1055,7 +1042,7 @@ class FullWorkflowOverrideTest(OpenAssessmentTest, FullWorkflowMixin): ...@@ -1055,7 +1042,7 @@ class FullWorkflowOverrideTest(OpenAssessmentTest, FullWorkflowMixin):
self.verify_staff_area_fields(learner, [], [], []) self.verify_staff_area_fields(learner, [], [], [])
self.staff_area_page.verify_learner_final_score(self.STAFF_OVERRIDE_STAFF_AREA_NOT_COMPLETE) self.staff_area_page.verify_learner_final_score(self.STAFF_OVERRIDE_STAFF_AREA_NOT_COMPLETE)
# Do staff override-- score still not shown due to steps not being complete. # Do staff override
self.do_staff_override(learner, self.STAFF_OVERRIDE_STAFF_AREA_NOT_COMPLETE) self.do_staff_override(learner, self.STAFF_OVERRIDE_STAFF_AREA_NOT_COMPLETE)
# Refresh the page so the learner sees the Staff Grade section. # Refresh the page so the learner sees the Staff Grade section.
......
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