22
33from pendulum import Pendulum
44from pendulum .formatting .alternative_formatter import AlternativeFormatter
5+ from pendulum .lang import TRANSLATIONS
56from .. import AbstractTestCase
67
78
89class ClassicFormatterTest (AbstractTestCase ):
910
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+
1023 def test_year_tokens (self ):
1124 d = Pendulum (2009 , 1 , 14 , 15 , 25 , 50 , 123456 )
1225 f = AlternativeFormatter ()
@@ -69,6 +82,12 @@ def test_day_of_year(self):
6982 self .assertEqual ('241e' , f .format (d , 'DDDo' , locale = 'fr' ))
7083 self .assertEqual ('244e' , f .format (d .add (days = 3 ), 'DDDo' , locale = 'fr' ))
7184
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+
7291 def test_day_of_week (self ):
7392 f = AlternativeFormatter ()
7493 d = Pendulum (2016 , 8 , 28 )
@@ -82,6 +101,8 @@ def test_day_of_week(self):
82101 self .assertEqual ('dim' , f .format (d , 'ddd' , locale = 'fr' ))
83102 self .assertEqual ('dimanche' , f .format (d , 'dddd' , locale = 'fr' ))
84103
104+ self .assertEqual ('0th' , f .format (d , 'do' ))
105+
85106 def test_am_pm (self ):
86107 f = AlternativeFormatter ()
87108 d = Pendulum (2016 , 8 , 28 , 23 )
@@ -156,6 +177,10 @@ def test_timezone_offset(self):
156177 self .assertEqual ('+0100' , f .format (d , 'Z' ))
157178 self .assertEqual ('+01:00' , f .format (d , 'ZZ' ))
158179
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+
159184 def test_timestamp (self ):
160185 f = AlternativeFormatter ()
161186 d = Pendulum (1970 , 1 , 1 )
@@ -184,3 +209,20 @@ def test_escape(self):
184209 d = Pendulum (2016 , 8 , 28 )
185210 self .assertEqual ('YYYY 2016 [2016]' , f .format (d , '[YYYY] YYYY \[YYYY\]' ))
186211 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