本文整理汇总了Python中grades.models.NumericActivity.status方法的典型用法代码示例。如果您正苦于以下问题:Python NumericActivity.status方法的具体用法?Python NumericActivity.status怎么用?Python NumericActivity.status使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类grades.models.NumericActivity
的用法示例。
在下文中一共展示了NumericActivity.status方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_activity_status
# 需要导入模块: from grades.models import NumericActivity [as 别名]
# 或者: from grades.models.NumericActivity import status [as 别名]
def test_activity_status(self):
"""
Test operations on activity's status
"""
# check the get_status_display override
now = datetime.datetime.now()
a = NumericActivity(name="Assign 1", short_name="A1", status="INVI", max_grade=10)
self.assertEquals(a.get_status_display(), ACTIVITY_STATUS["INVI"])
a.status="RLS"
self.assertEquals(a.get_status_display(), ACTIVITY_STATUS["RLS"])
a.status="URLS"
self.assertEquals(a.get_status_display(), ACTIVITY_STATUS["URLS"])
a.due_date = now - datetime.timedelta(hours=1)
self.assertEquals(a.get_status_display(), ACTIVITY_STATUS["URLS"])
# the special case: unreleased, before the due date
a.due_date = now + datetime.timedelta(hours=1)
self.assertEquals(a.get_status_display(), "no grades: due date not passed")
示例2: test_formulas
# 需要导入模块: from grades.models import NumericActivity [as 别名]
# 或者: from grades.models.NumericActivity import status [as 别名]
def test_formulas(self):
"""
Test the formula parsing & evaluation.
"""
# set up course and related data
s, c = create_offering()
p = Person.objects.get(userid="0aaa0")
m = Member(person=p, offering=c, role="STUD", credits=3, added_reason="UNK")
m.save()
a = NumericActivity(name="Paragraph", short_name=u"\u00b6", status="RLS", offering=c, position=3, max_grade=40, percent=5)
a.save()
g = NumericGrade(activity=a, member=m, value="4.5", flag="CALC")
g.save(entered_by='ggbaker')
a1 = NumericActivity(name="Assignment #1", short_name="A1", status="RLS", offering=c, position=1, max_grade=15, percent=10)
a1.save()
g = NumericGrade(activity=a1, member=m, value=10, flag="GRAD")
g.save(entered_by='ggbaker')
a2 = NumericActivity(name="Assignment #2", short_name="A2", status="URLS", offering=c, position=2, max_grade=40, percent=20)
a2.save(entered_by='ggbaker')
g = NumericGrade(activity=a2, member=m, value=30, flag="GRAD")
g.save(entered_by='ggbaker')
ca = CalNumericActivity(name="Final Grade", short_name=u"FG", status="RLS", offering=c, position=4, max_grade=1)
ca.save()
activities = NumericActivity.objects.filter(offering=c)
act_dict = activities_dictionary(activities)
# make sure a formula can be pickled and unpickled safely (i.e. can be cached)
tree = parse("sum([Assignment #1], [A1], [A2])/20*-3", c, ca)
p = pickle.dumps(tree)
tree2 = pickle.loads(p)
self.assertEqual(tree, tree2)
# check that it found the right list of columns used
self.assertEqual(cols_used(tree), set(['A1', 'A2', 'Assignment #1']))
# test parsing and evaluation to make sure we get the right values out
for expr, correct in test_formulas:
tree = parse(expr, c, ca)
res = eval_parse(tree, ca, act_dict, m, False)
self.assertAlmostEqual(correct, res, msg=u"Incorrect result for %s"%(expr,))
# test some badly-formed stuff for appropriate exceptions
tree = parse("1 + BEST(3, [A1], [A2])", c, ca)
self.assertRaises(EvalException, eval_parse, tree, ca, act_dict, m, True)
tree = parse("1 + BEST(0, [A1], [A2])", c, ca)
self.assertRaises(EvalException, eval_parse, tree, ca, act_dict, m, True)
tree = parse("[Foo] /2", c, ca)
self.assertRaises(KeyError, eval_parse, tree, ca, act_dict, m, True)
tree = parse("[a1] /2", c, ca)
self.assertRaises(KeyError, eval_parse, tree, ca, act_dict, m, True)
self.assertRaises(ParseException, parse, "AVG()", c, ca)
self.assertRaises(ParseException, parse, "(2+3*84", c, ca)
self.assertRaises(ParseException, parse, "2+3**84", c, ca)
self.assertRaises(ParseException, parse, "AVG(2,3,4", c, ca)
self.assertRaises(ParseException, parse, "{something}", c, ca)
# test visible/invisible switching
tree = parse("[Assignment #2]", c, ca)
res = eval_parse(tree, ca, act_dict, m, True)
self.assertAlmostEqual(res, 0.0)
res = eval_parse(tree, ca, act_dict, m, False)
self.assertAlmostEqual(res, 30.0)
# test unreleased/missing grade conditions
expr = "[Assignment #2]"
tree = parse(expr, c, ca)
# unreleased assignment (with grade)
a2.status='URLS'
a2.save()
activities = NumericActivity.objects.filter(offering=c)
act_dict = activities_dictionary(activities)
res = eval_parse(tree, ca, act_dict, m, True)
self.assertAlmostEqual(res, 0.0)
# explicit no grade (released assignment)
g.flag="NOGR"
g.save(entered_by='ggbaker')
a2.status='RLS'
a2.save(entered_by='ggbaker')
activities = NumericActivity.objects.filter(offering=c)
act_dict = activities_dictionary(activities)
res = eval_parse(tree, ca, act_dict, m, True)
self.assertAlmostEqual(res, 0.0)
# no grade in database (released assignment)
g.delete()
activities = NumericActivity.objects.filter(offering=c)
act_dict = activities_dictionary(activities)
res = eval_parse(tree, ca, act_dict, m, True)
self.assertAlmostEqual(res, 0.0)
# test [[activitytotal]]
expr = "[[activitytotal]]"
tree = parse(expr, c, ca)
res = eval_parse(tree, ca, act_dict, m, True)
self.assertAlmostEqual(res, 7.229166666)