Commit 3cdda99b by Will Daly

Fix error caused by milliseconds in timestamp

parent 95e1a581
......@@ -3,6 +3,8 @@
import datetime
import pkg_resources
import dateutil.parser
from django.template.context import Context
from django.template.loader import get_template
from webob import Response
......@@ -155,9 +157,6 @@ DEFAULT_ASSESSMENT_MODULES = [
DEFAULT_PEER_ASSESSMENT,
]
# Used to parse datetime strings from the XML configuration.
TIME_PARSE_FORMAT = "%Y-%m-%dT%H:%M:%S"
def load(path):
"""Handy helper for getting resources from our kit."""
......@@ -384,11 +383,11 @@ class OpenAssessmentBlock(XBlock, SubmissionMixin, PeerAssessmentMixin, SelfAsse
context_dict["xblock_trace"] = self.get_xblock_trace()
if self.start_datetime:
start = datetime.datetime.strptime(self.start_datetime, TIME_PARSE_FORMAT)
start = dateutil.parser.parse(self.start_datetime)
context_dict["formatted_start_date"] = start.strftime("%A, %B %d, %Y")
context_dict["formatted_start_datetime"] = start.strftime("%A, %B %d, %Y %X")
if self.due_datetime:
due = datetime.datetime.strptime(self.due_datetime, TIME_PARSE_FORMAT)
due = dateutil.parser.parse(self.due_datetime)
context_dict["formatted_due_date"] = due.strftime("%A, %B %d, %Y")
context_dict["formatted_due_datetime"] = due.strftime("%A, %B %d, %Y %X")
......@@ -414,11 +413,11 @@ class OpenAssessmentBlock(XBlock, SubmissionMixin, PeerAssessmentMixin, SelfAsse
"""
# Is the question closed?
if self.start_datetime:
start = datetime.datetime.strptime(self.start_datetime, TIME_PARSE_FORMAT)
start = dateutil.parser.parse(self.start_datetime)
if start > datetime.datetime.utcnow():
return False, "start"
if self.due_datetime:
due = datetime.datetime.strptime(self.due_datetime, TIME_PARSE_FORMAT)
due = dateutil.parser.parse(self.due_datetime)
if due < datetime.datetime.utcnow():
return False, "due"
return True, None
......@@ -8,7 +8,6 @@ from django.test import TestCase
from mock import patch
from workbench.runtime import WorkbenchRuntime
import webob
from openassessment.xblock.openassessmentblock import TIME_PARSE_FORMAT
from openassessment.xblock.submission_mixin import SubmissionMixin
from submissions import api as sub_api
......@@ -154,20 +153,20 @@ class TestOpenAssessment(TestCase):
past = now - datetime.timedelta(minutes = 10)
future = now + datetime.timedelta(minutes = 10)
way_future = now + datetime.timedelta(minutes = 20)
self.assessment.start_datetime = past.strftime(TIME_PARSE_FORMAT)
self.assessment.due_datetime = past.strftime(TIME_PARSE_FORMAT)
self.assessment.start_datetime = past.isoformat()
self.assessment.due_datetime = past.isoformat()
problem_open, reason = self.assessment.is_open()
self.assertFalse(problem_open)
self.assertEqual("due", reason)
self.assessment.start_datetime = past.strftime(TIME_PARSE_FORMAT)
self.assessment.due_datetime = future.strftime(TIME_PARSE_FORMAT)
self.assessment.start_datetime = past.isoformat()
self.assessment.due_datetime = future.isoformat()
problem_open, reason = self.assessment.is_open()
self.assertTrue(problem_open)
self.assertEqual(None, reason)
self.assessment.start_datetime = future.strftime(TIME_PARSE_FORMAT)
self.assessment.due_datetime = way_future.strftime(TIME_PARSE_FORMAT)
self.assessment.start_datetime = future.isoformat()
self.assessment.due_datetime = way_future.isoformat()
problem_open, reason = self.assessment.is_open()
self.assertFalse(problem_open)
self.assertEqual("start", reason)
......@@ -7,4 +7,5 @@ django==1.4.8
django-extensions==1.2.5
djangorestframework==2.3.5
Mako==0.9.1
python-dateutil==2.1
pytz==2012h
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