2
2
3
3
from pendulum import Pendulum
4
4
from pendulum .formatting .alternative_formatter import AlternativeFormatter
5
+ from pendulum .lang import TRANSLATIONS
5
6
from .. import AbstractTestCase
6
7
7
8
8
9
class ClassicFormatterTest (AbstractTestCase ):
9
10
11
+ def setUp (self ):
12
+ super (ClassicFormatterTest , self ).setUp ()
13
+
14
+ # Add dummy locale for testing purposes
15
+ TRANSLATIONS ['dummy' ] = {}
16
+
17
+ def tearDown (self ):
18
+ super (ClassicFormatterTest , self ).tearDown ()
19
+
20
+ # Add dummy locale for testing purposes
21
+ del TRANSLATIONS ['dummy' ]
22
+
10
23
def test_year_tokens (self ):
11
24
d = Pendulum (2009 , 1 , 14 , 15 , 25 , 50 , 123456 )
12
25
f = AlternativeFormatter ()
@@ -69,6 +82,12 @@ def test_day_of_year(self):
69
82
self .assertEqual ('241e' , f .format (d , 'DDDo' , locale = 'fr' ))
70
83
self .assertEqual ('244e' , f .format (d .add (days = 3 ), 'DDDo' , locale = 'fr' ))
71
84
85
+ def test_week_of_year (self ):
86
+ f = AlternativeFormatter ()
87
+ d = Pendulum (2016 , 8 , 28 )
88
+
89
+ self .assertEqual ('34th' , f .format (d , 'wo' ))
90
+
72
91
def test_day_of_week (self ):
73
92
f = AlternativeFormatter ()
74
93
d = Pendulum (2016 , 8 , 28 )
@@ -82,6 +101,8 @@ def test_day_of_week(self):
82
101
self .assertEqual ('dim' , f .format (d , 'ddd' , locale = 'fr' ))
83
102
self .assertEqual ('dimanche' , f .format (d , 'dddd' , locale = 'fr' ))
84
103
104
+ self .assertEqual ('0th' , f .format (d , 'do' ))
105
+
85
106
def test_am_pm (self ):
86
107
f = AlternativeFormatter ()
87
108
d = Pendulum (2016 , 8 , 28 , 23 )
@@ -156,6 +177,10 @@ def test_timezone_offset(self):
156
177
self .assertEqual ('+0100' , f .format (d , 'Z' ))
157
178
self .assertEqual ('+01:00' , f .format (d , 'ZZ' ))
158
179
180
+ d = Pendulum (2016 , 1 , 28 , 7 , 3 , 6 , 123456 , 'America/Guayaquil' )
181
+ self .assertEqual ('-0500' , f .format (d , 'Z' ))
182
+ self .assertEqual ('-05:00' , f .format (d , 'ZZ' ))
183
+
159
184
def test_timestamp (self ):
160
185
f = AlternativeFormatter ()
161
186
d = Pendulum (1970 , 1 , 1 )
@@ -184,3 +209,20 @@ def test_escape(self):
184
209
d = Pendulum (2016 , 8 , 28 )
185
210
self .assertEqual ('YYYY 2016 [2016]' , f .format (d , '[YYYY] YYYY \[YYYY\]' ))
186
211
self .assertEqual ('D 28 \\ 28' , f .format (d , '\D D \\ \D' ))
212
+
213
+ def test_date_formats_missing (self ):
214
+ f = AlternativeFormatter ()
215
+ d = Pendulum (2016 , 8 , 28 , 7 , 3 , 6 , 123456 )
216
+
217
+ self .assertEqual ('7:03 AM' , f .format (d , 'LT' , locale = 'dummy' ))
218
+ self .assertEqual ('7:03:06 AM' , f .format (d , 'LTS' , locale = 'dummy' ))
219
+ self .assertEqual ('08/28/2016' , f .format (d , 'L' , locale = 'dummy' ))
220
+ self .assertEqual ('August 28, 2016' , f .format (d , 'LL' , locale = 'dummy' ))
221
+ self .assertEqual ('August 28, 2016 7:03 AM' , f .format (d , 'LLL' , locale = 'dummy' ))
222
+ self .assertEqual ('Sunday, August 28, 2016 7:03 AM' , f .format (d , 'LLLL' , locale = 'dummy' ))
223
+
224
+ def test_unknown_token (self ):
225
+ f = AlternativeFormatter ()
226
+ d = Pendulum (2016 , 8 , 28 , 7 , 3 , 6 , 123456 )
227
+
228
+ self .assertEqual ('J' , f .format (d , 'J' ))
0 commit comments