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.')
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 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 as 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 as err: self.assertTrue(str(err).endswith("You have: 5"))
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 testParseDateTimePatternError(self): # Quote not closed try: parseDateTimePattern("HH' Uhr") except DateTimePatternParseError as 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 as err: self.assertTrue(str(err).endswith('You have: 5'))
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 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 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 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 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 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 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)
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)])