Exemplo n.º 1
0
 def testParseDateTimePatternError(self):
     # Quote not closed
     try:
         parseDateTimePattern("HH' Uhr")
     except DateTimePatternParseError, err:
         self.assertEqual(
             str(err), 'The quote starting at character 2 is not closed.')
Exemplo n.º 2
0
 def testParseQuotesInPattern(self):
     self.assertEqual(parseDateTimePattern("HH''mm"), [('H', 2), "'",
                                                       ('m', 2)])
     self.assertEqual(parseDateTimePattern("HH'HHmm'mm"), [('H', 2), 'HHmm',
                                                           ('m', 2)])
     self.assertEqual(parseDateTimePattern("HH':'''':'mm"),
                      [('H', 2), ":':", ('m', 2)])
     self.assertEqual(parseDateTimePattern("HH':' ':'mm"), [('H', 2), ": :",
                                                            ('m', 2)])
Exemplo n.º 3
0
 def testParseGermanTimePattern(self):
     # German full
     self.assertEqual(parseDateTimePattern("H:mm' Uhr 'z"),
                      [('H', 1), ':', ('m', 2), ' Uhr ', ('z', 1)])
     # German long
     self.assertEqual(parseDateTimePattern("HH:mm:ss z"), [('H', 2), ':',
                                                           ('m', 2), ':',
                                                           ('s', 2), ' ',
                                                           ('z', 1)])
     # German medium
     self.assertEqual(parseDateTimePattern("HH:mm:ss"), [('H', 2), ':',
                                                         ('m', 2), ':',
                                                         ('s', 2)])
     # German short
     self.assertEqual(parseDateTimePattern("HH:mm"), [('H', 2), ':',
                                                      ('m', 2)])
Exemplo n.º 4
0
 def testParseRealDate(self):
     # German full
     self.assertEqual(parseDateTimePattern("EEEE, d. MMMM yyyy"),
                      [('E', 4), ', ', ('d', 1), '. ', ('M', 4), ' ',
                       ('y', 4)])
     # German long
     self.assertEqual(parseDateTimePattern("d. MMMM yyyy"), [('d', 1), '. ',
                                                             ('M', 4), ' ',
                                                             ('y', 4)])
     # German medium
     self.assertEqual(parseDateTimePattern("dd.MM.yyyy"), [('d', 2), '.',
                                                           ('M', 2), '.',
                                                           ('y', 4)])
     # German short
     self.assertEqual(parseDateTimePattern("dd.MM.yy"), [('d', 2), '.',
                                                         ('M', 2), '.',
                                                         ('y', 2)])
Exemplo n.º 5
0
 def testParseRealDateTime(self):
     # German full
     self.assertEqual(
         parseDateTimePattern("EEEE, d. MMMM yyyy H:mm' Uhr 'z"),
         [('E', 4), ', ', ('d', 1), '. ', ('M', 4), ' ', ('y', 4), ' ',
          ('H', 1), ':', ('m', 2), ' Uhr ', ('z', 1)])
     # German long
     self.assertEqual(parseDateTimePattern("d. MMMM yyyy HH:mm:ss z"),
                      [('d', 1), '. ', ('M', 4), ' ', ('y', 4), ' ',
                       ('H', 2), ':', ('m', 2), ':', ('s', 2), ' ',
                       ('z', 1)])
     # German medium
     self.assertEqual(parseDateTimePattern("dd.MM.yyyy HH:mm:ss"),
                      [('d', 2), '.', ('M', 2), '.', ('y', 4), ' ',
                       ('H', 2), ':', ('m', 2), ':', ('s', 2)])
     # German short
     self.assertEqual(parseDateTimePattern("dd.MM.yy HH:mm"),
                      [('d', 2), '.', ('M', 2), '.', ('y', 2), ' ',
                       ('H', 2), ':', ('m', 2)])
Exemplo n.º 6
0
 def testParseSimpleTimePattern(self):
     self.assertEqual(parseDateTimePattern('HH'), [('H', 2)])
     self.assertEqual(parseDateTimePattern('HH:mm'), [('H', 2), ':',
                                                      ('m', 2)])
     self.assertEqual(parseDateTimePattern('HH:mm:ss'), [('H', 2), ':',
                                                         ('m', 2), ':',
                                                         ('s', 2)])
     self.assertEqual(parseDateTimePattern('mm:ss'), [('m', 2), ':',
                                                      ('s', 2)])
     self.assertEqual(parseDateTimePattern('H:m:s'),
                      [('H', 1), ':', ('m', 1), ':', ('s', 1)])
     self.assertEqual(parseDateTimePattern('HHH:mmmm:sssss'),
                      [('H', 3), ':', ('m', 4), ':', ('s', 5)])
Exemplo n.º 7
0
    def runTest(self):
        # Loading Locale object
        locale = LocaleFactory(self.__path)()

        # Making sure all number format patterns parse
        for category in (u'decimal', u'scientific', u'percent', u'currency'):
            for length in getattr(locale.numbers,
                                  category + 'Formats').values():
                for format in length.formats.values():
                    self.assert_(
                        parseNumberPattern(format.pattern) is not None)

        # Making sure all datetime patterns parse
        for calendar in locale.dates.calendars.values():
            for category in ('date', 'time', 'dateTime'):
                for length in getattr(calendar, category + 'Formats').values():
                    for format in length.formats.values():
                        self.assert_(
                            parseDateTimePattern(format.pattern) is not None)
Exemplo n.º 8
0
class TestDateTimePatternParser(TestCase):
    """Extensive tests for the ICU-based-syntax datetime pattern parser."""
    def testParseSimpleTimePattern(self):
        self.assertEqual(parseDateTimePattern('HH'), [('H', 2)])
        self.assertEqual(parseDateTimePattern('HH:mm'), [('H', 2), ':',
                                                         ('m', 2)])
        self.assertEqual(parseDateTimePattern('HH:mm:ss'), [('H', 2), ':',
                                                            ('m', 2), ':',
                                                            ('s', 2)])
        self.assertEqual(parseDateTimePattern('mm:ss'), [('m', 2), ':',
                                                         ('s', 2)])
        self.assertEqual(parseDateTimePattern('H:m:s'),
                         [('H', 1), ':', ('m', 1), ':', ('s', 1)])
        self.assertEqual(parseDateTimePattern('HHH:mmmm:sssss'),
                         [('H', 3), ':', ('m', 4), ':', ('s', 5)])

    def testParseGermanTimePattern(self):
        # German full
        self.assertEqual(parseDateTimePattern("H:mm' Uhr 'z"),
                         [('H', 1), ':', ('m', 2), ' Uhr ', ('z', 1)])
        # German long
        self.assertEqual(parseDateTimePattern("HH:mm:ss z"), [('H', 2), ':',
                                                              ('m', 2), ':',
                                                              ('s', 2), ' ',
                                                              ('z', 1)])
        # German medium
        self.assertEqual(parseDateTimePattern("HH:mm:ss"), [('H', 2), ':',
                                                            ('m', 2), ':',
                                                            ('s', 2)])
        # German short
        self.assertEqual(parseDateTimePattern("HH:mm"), [('H', 2), ':',
                                                         ('m', 2)])

    def testParseRealDate(self):
        # German full
        self.assertEqual(parseDateTimePattern("EEEE, d. MMMM yyyy"),
                         [('E', 4), ', ', ('d', 1), '. ', ('M', 4), ' ',
                          ('y', 4)])
        # German long
        self.assertEqual(parseDateTimePattern("d. MMMM yyyy"), [('d', 1), '. ',
                                                                ('M', 4), ' ',
                                                                ('y', 4)])
        # German medium
        self.assertEqual(parseDateTimePattern("dd.MM.yyyy"), [('d', 2), '.',
                                                              ('M', 2), '.',
                                                              ('y', 4)])
        # German short
        self.assertEqual(parseDateTimePattern("dd.MM.yy"), [('d', 2), '.',
                                                            ('M', 2), '.',
                                                            ('y', 2)])

    def testParseRealDateTime(self):
        # German full
        self.assertEqual(
            parseDateTimePattern("EEEE, d. MMMM yyyy H:mm' Uhr 'z"),
            [('E', 4), ', ', ('d', 1), '. ', ('M', 4), ' ', ('y', 4), ' ',
             ('H', 1), ':', ('m', 2), ' Uhr ', ('z', 1)])
        # German long
        self.assertEqual(parseDateTimePattern("d. MMMM yyyy HH:mm:ss z"),
                         [('d', 1), '. ', ('M', 4), ' ', ('y', 4), ' ',
                          ('H', 2), ':', ('m', 2), ':', ('s', 2), ' ',
                          ('z', 1)])
        # German medium
        self.assertEqual(parseDateTimePattern("dd.MM.yyyy HH:mm:ss"),
                         [('d', 2), '.', ('M', 2), '.', ('y', 4), ' ',
                          ('H', 2), ':', ('m', 2), ':', ('s', 2)])
        # German short
        self.assertEqual(parseDateTimePattern("dd.MM.yy HH:mm"),
                         [('d', 2), '.', ('M', 2), '.', ('y', 2), ' ',
                          ('H', 2), ':', ('m', 2)])

    def testParseQuotesInPattern(self):
        self.assertEqual(parseDateTimePattern("HH''mm"), [('H', 2), "'",
                                                          ('m', 2)])
        self.assertEqual(parseDateTimePattern("HH'HHmm'mm"), [('H', 2), 'HHmm',
                                                              ('m', 2)])
        self.assertEqual(parseDateTimePattern("HH':'''':'mm"),
                         [('H', 2), ":':", ('m', 2)])
        self.assertEqual(parseDateTimePattern("HH':' ':'mm"), [('H', 2), ": :",
                                                               ('m', 2)])

    def testParseDateTimePatternError(self):
        # Quote not closed
        try:
            parseDateTimePattern("HH' Uhr")
        except DateTimePatternParseError, err:
            self.assertEqual(
                str(err), 'The quote starting at character 2 is not closed.')
        # Test correct length of characters in datetime fields
        try:
            parseDateTimePattern("HHHHH")
        except DateTimePatternParseError, err:
            self.assert_(str(err).endswith('You have: 5'))