OSPR-535 Partial Credit
Squashed commit of the following: commit 0f7c2af5f7b8caed575dd253a45299293b2729d7 Author: Colin-Fredericks <colin.fredericks@gmail.com> Date: Tue Jun 30 12:04:43 2015 -0400 Forgot icon commit b48970392741130f774709c54eb6e5ab0089812c Author: Colin-Fredericks <colin.fredericks@gmail.com> Date: Tue Jun 30 11:49:57 2015 -0400 OSPR-535 Partial Credit Squashed commit of the following: commit 6dd34f58f994e32d0d54bf1d67bffd04e0f8ef08 Author: Colin-Fredericks <cof945@dhcp-140-247-184-176.fas.harvard.edu> Date: Tue Jun 30 11:44:01 2015 -0400 Fixing accidental overwrite. commit 1ff8fc4b0e83b90356e8e8dce1022f49bfd162cf Author: Colin-Fredericks <cof945@dhcp-140-247-184-176.fas.harvard.edu> Date: Tue Jun 30 11:18:36 2015 -0400 OSPR-535 Partial Credit Revised after first pull discussion. Fixing scss typos Fixing check/x display problem Empty set is not [] Shuffling empty answer code to grade properly. I don't think I ever wrote this in the first place... Adding tests for MC and Checkbox including proper partial-credit marking and scoring Numerical and OptionResponse tests Also a few improvements to NumericalResponse problem type and exception-raising. CustomResponse tests and more numerical tests Increasing coverage and fixing typos Exception added for pylint false positive Hopefully fixing coverage issue Retabulating line continuation Bok Choy test for partial credit Copypasta fix Adding tooltip for partial credit Improving and expanding comments Minor fixes
This commit is contained in:
@@ -64,6 +64,12 @@ class ProblemPage(PageObject):
|
||||
"""
|
||||
self.q(css='div.problem div.capa_inputtype.textline input').fill(text)
|
||||
|
||||
def fill_answer_numerical(self, text):
|
||||
"""
|
||||
Fill in the answer to a numerical problem.
|
||||
"""
|
||||
self.q(css='div.problem section.inputtype input').fill(text)
|
||||
|
||||
def click_check(self):
|
||||
"""
|
||||
Click the Check button!
|
||||
@@ -84,6 +90,24 @@ class ProblemPage(PageObject):
|
||||
"""
|
||||
return self.q(css="div.problem div.capa_inputtype.textline div.correct span.status").is_present()
|
||||
|
||||
def simpleprob_is_correct(self):
|
||||
"""
|
||||
Is there a "correct" status showing? Works with simple problem types.
|
||||
"""
|
||||
return self.q(css="div.problem section.inputtype div.correct span.status").is_present()
|
||||
|
||||
def simpleprob_is_partially_correct(self):
|
||||
"""
|
||||
Is there a "partially correct" status showing? Works with simple problem types.
|
||||
"""
|
||||
return self.q(css="div.problem section.inputtype div.partially-correct span.status").is_present()
|
||||
|
||||
def simpleprob_is_incorrect(self):
|
||||
"""
|
||||
Is there an "incorrect" status showing? Works with simple problem types.
|
||||
"""
|
||||
return self.q(css="div.problem section.inputtype div.incorrect span.status").is_present()
|
||||
|
||||
def click_clarification(self, index=0):
|
||||
"""
|
||||
Click on an inline icon that can be included in problem text using an HTML <clarification> element:
|
||||
|
||||
@@ -213,3 +213,35 @@ class ProblemWithMathjax(ProblemsTest):
|
||||
|
||||
self.assertIn("Hint (2 of 2): mathjax should work2", problem_page.hint_text)
|
||||
self.assertTrue(problem_page.mathjax_rendered_in_hint, "MathJax did not rendered in problem hint")
|
||||
|
||||
|
||||
class ProblemPartialCredit(ProblemsTest):
|
||||
"""
|
||||
Makes sure that the partial credit is appearing properly.
|
||||
"""
|
||||
def get_problem(self):
|
||||
"""
|
||||
Create a problem with partial credit.
|
||||
"""
|
||||
xml = dedent("""
|
||||
<problem>
|
||||
<p>The answer is 1. Partial credit for -1.</p>
|
||||
<numericalresponse answer="1" partial_credit="list">
|
||||
<formulaequationinput label="How many miles away from Earth is the sun? Use scientific notation to answer." />
|
||||
<responseparam type="tolerance" default="0.01" />
|
||||
<responseparam partial_answers="-1" />
|
||||
</numericalresponse>
|
||||
</problem>
|
||||
""")
|
||||
return XBlockFixtureDesc('problem', 'PARTIAL CREDIT TEST PROBLEM', data=xml)
|
||||
|
||||
def test_partial_credit(self):
|
||||
"""
|
||||
Test that we can see the partial credit value and feedback.
|
||||
"""
|
||||
self.courseware_page.visit()
|
||||
problem_page = ProblemPage(self.browser)
|
||||
self.assertEqual(problem_page.problem_name, 'PARTIAL CREDIT TEST PROBLEM')
|
||||
problem_page.fill_answer_numerical('-1')
|
||||
problem_page.click_check()
|
||||
self.assertTrue(problem_page.simpleprob_is_partially_correct())
|
||||
|
||||
Reference in New Issue
Block a user