@@ -1556,13 +1556,32 @@ def test_roundtrip(self):
15561556 self .assertEqual (dt , dt2 )
15571557
15581558 def test_isoformat (self ):
1559- t = self .theclass (2 , 3 , 2 , 4 , 5 , 1 , 123 )
1560- self .assertEqual (t .isoformat (), "0002-03-02T04:05:01.000123" )
1561- self .assertEqual (t .isoformat ('T' ), "0002-03-02T04:05:01.000123" )
1562- self .assertEqual (t .isoformat (' ' ), "0002-03-02 04:05:01.000123" )
1563- self .assertEqual (t .isoformat ('\x00 ' ), "0002-03-02\x00 04:05:01.000123" )
1559+ t = self .theclass (1 , 2 , 3 , 4 , 5 , 1 , 123 )
1560+ self .assertEqual (t .isoformat (), "0001-02-03T04:05:01.000123" )
1561+ self .assertEqual (t .isoformat ('T' ), "0001-02-03T04:05:01.000123" )
1562+ self .assertEqual (t .isoformat (' ' ), "0001-02-03 04:05:01.000123" )
1563+ self .assertEqual (t .isoformat ('\x00 ' ), "0001-02-03\x00 04:05:01.000123" )
1564+ self .assertEqual (t .isoformat (timespec = 'hours' ), "0001-02-03T04" )
1565+ self .assertEqual (t .isoformat (timespec = 'minutes' ), "0001-02-03T04:05" )
1566+ self .assertEqual (t .isoformat (timespec = 'seconds' ), "0001-02-03T04:05:01" )
1567+ self .assertEqual (t .isoformat (timespec = 'milliseconds' ), "0001-02-03T04:05:01.000" )
1568+ self .assertEqual (t .isoformat (timespec = 'microseconds' ), "0001-02-03T04:05:01.000123" )
1569+ self .assertEqual (t .isoformat (timespec = 'auto' ), "0001-02-03T04:05:01.000123" )
1570+ self .assertEqual (t .isoformat (sep = ' ' , timespec = 'minutes' ), "0001-02-03 04:05" )
1571+ self .assertRaises (ValueError , t .isoformat , timespec = 'foo' )
15641572 # str is ISO format with the separator forced to a blank.
1565- self .assertEqual (str (t ), "0002-03-02 04:05:01.000123" )
1573+ self .assertEqual (str (t ), "0001-02-03 04:05:01.000123" )
1574+
1575+ t = self .theclass (1 , 2 , 3 , 4 , 5 , 1 , 999500 , tzinfo = timezone .utc )
1576+ self .assertEqual (t .isoformat (timespec = 'milliseconds' ), "0001-02-03T04:05:01.999+00:00" )
1577+
1578+ t = self .theclass (1 , 2 , 3 , 4 , 5 , 1 , 999500 )
1579+ self .assertEqual (t .isoformat (timespec = 'milliseconds' ), "0001-02-03T04:05:01.999" )
1580+
1581+ t = self .theclass (1 , 2 , 3 , 4 , 5 , 1 )
1582+ self .assertEqual (t .isoformat (timespec = 'auto' ), "0001-02-03T04:05:01" )
1583+ self .assertEqual (t .isoformat (timespec = 'milliseconds' ), "0001-02-03T04:05:01.000" )
1584+ self .assertEqual (t .isoformat (timespec = 'microseconds' ), "0001-02-03T04:05:01.000000" )
15661585
15671586 t = self .theclass (2 , 3 , 2 )
15681587 self .assertEqual (t .isoformat (), "0002-03-02T00:00:00" )
@@ -2322,6 +2341,23 @@ def test_isoformat(self):
23222341 self .assertEqual (t .isoformat (), "00:00:00.100000" )
23232342 self .assertEqual (t .isoformat (), str (t ))
23242343
2344+ t = self .theclass (hour = 12 , minute = 34 , second = 56 , microsecond = 123456 )
2345+ self .assertEqual (t .isoformat (timespec = 'hours' ), "12" )
2346+ self .assertEqual (t .isoformat (timespec = 'minutes' ), "12:34" )
2347+ self .assertEqual (t .isoformat (timespec = 'seconds' ), "12:34:56" )
2348+ self .assertEqual (t .isoformat (timespec = 'milliseconds' ), "12:34:56.123" )
2349+ self .assertEqual (t .isoformat (timespec = 'microseconds' ), "12:34:56.123456" )
2350+ self .assertEqual (t .isoformat (timespec = 'auto' ), "12:34:56.123456" )
2351+ self .assertRaises (ValueError , t .isoformat , timespec = 'monkey' )
2352+
2353+ t = self .theclass (hour = 12 , minute = 34 , second = 56 , microsecond = 999500 )
2354+ self .assertEqual (t .isoformat (timespec = 'milliseconds' ), "12:34:56.999" )
2355+
2356+ t = self .theclass (hour = 12 , minute = 34 , second = 56 , microsecond = 0 )
2357+ self .assertEqual (t .isoformat (timespec = 'milliseconds' ), "12:34:56.000" )
2358+ self .assertEqual (t .isoformat (timespec = 'microseconds' ), "12:34:56.000000" )
2359+ self .assertEqual (t .isoformat (timespec = 'auto' ), "12:34:56" )
2360+
23252361 def test_1653736 (self ):
23262362 # verify it doesn't accept extra keyword arguments
23272363 t = self .theclass (second = 1 )
0 commit comments