Esempio n. 1
0
 def test_getInputValue(self):
     TEST_DATE= u'2003/03/26 12:00:00'
     self._widget.request.form['field.foo'] = u''
     self.assertRaises(WidgetInputError, self._widget.getInputValue)
     self._widget.request.form['field.foo'] = TEST_DATE
     self.assertEquals(self._widget.getInputValue(), parseDatetimetz(TEST_DATE))
     self._widget.request.form['field.foo'] = u'abc'
     self.assertRaises(ConversionError, self._widget.getInputValue)
Esempio n. 2
0
 def _toFieldValue(self, input):
     if input == self._missing:
         return self.context.missing_value
     else:
         try:
             return parseDatetimetz(input)
         except (DateTimeError, ValueError, IndexError), v:
             raise ConversionError(_("Invalid datetime data"), v)
Esempio n. 3
0
 def __get__(self, inst, klass):
     if inst is None:
         return self
     data = inst._mapping.get(self.__name__, ())
     if data:
         return parseDatetimetz(data[0])
     else:
         return None
Esempio n. 4
0
    def testDates(self):
        self.__testQualified('Dates', [
            (u'', u'1990-01-01'),
            (u'Created', u'1980-10-01T23:11:10-04:00'),
            (u'Modified', u'2002-10-01T12:09:22-04:00'),
            (u'Effective', u'2002-10-09T00:00:00-04:00'),
            (u'Expires', u'2002-10-16T00:00:00-04:00'),
            (u'xxx', u'2000-07-04'),
            (u'xxx', u'2001-12-31'),
            (u'foo \u1111', u'2001-12-31'),
            ])

        from zope.app.datetimeutils import parseDatetimetz

        dc = self.dc
        self.assertEqual(dc.created,
                         parseDatetimetz('1980-10-01T23:11:10-04:00'))
        self.assertEqual(dc.modified,
                         parseDatetimetz('2002-10-01T12:09:22-04:00'))
        self.assertEqual(dc.effective,
                         parseDatetimetz('2002-10-09T00:00:00-04:00'))
        self.assertEqual(dc.expires,
                         parseDatetimetz('2002-10-16T00:00:00-04:00'))

        self.assertEqual(dc.Date(), u'1990-01-01')
        self.assertEqual(dc.CreationDate(), u'1980-10-01T23:11:10-04:00')
        self.assertEqual(dc.ModificationDate(), u'2002-10-01T12:09:22-04:00')
        self.assertEqual(dc.EffectiveDate(), u'2002-10-09T00:00:00-04:00')
        self.assertEqual(dc.ExpirationDate(), u'2002-10-16T00:00:00-04:00')


        dt = parseDatetimetz('2002-10-03T14:51:55-04:00')

        dc.modified = dt

        self.assertRaises(Exception, setattr, dc, 'modified', 'foo')

        modified = [qv[1]
                    for qv in dc.getQualifiedDates()
                    if qv[0] == u'Modified']

        self.failIf(len(modified) != 1, "should be only one: %r" % modified)

        self.assertEqual(parseDatetimetz(modified[0]), dt)

        modified = dc.ModificationDate()
        self.assertEqual(parseDatetimetz(modified), dt)
Esempio n. 5
0
def getDateForField(field, source):
    """Returns a datetime object for the specified field in source.

    Returns None if the field value cannot be converted to date.
    """

    # look in input element first
    pattern = '<input .* name="field.%s".* value="(.*)".*>' % field
    m = re.search(pattern, source)
    if m is None:
        # look in a select element
        pattern = '<select .* name="field.%s".*>.*' \
            '<option value="(.*)" selected>*.</select>' % field
        m = re.search(pattern, source, re.DOTALL)
        if m is None:
            return None

    try:
        return parseDatetimetz(m.group(1))
    except:
        # ignore specifics
        return None
Esempio n. 6
0
 def testParseDatetimetz(self):
     from datetime import datetime
     from zope.app.datetimeutils import parseDatetimetz, tzinfo
     self.assertEqual(parseDatetimetz('1999-12-31T01:02:03.037-00:30'),
                      datetime(1999, 12, 31, 1, 2, 3, 37000, tzinfo(-30)))