Skip to content

Commit 7710ed0

Browse files
committed
Update test_calendar from CPython 3.11
1 parent fcc1725 commit 7710ed0

File tree

1 file changed

+51
-6
lines changed

1 file changed

+51
-6
lines changed

Lib/test/test_calendar.py

Lines changed: 51 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -564,6 +564,43 @@ def test_locale_calendars(self):
564564
new_october = calendar.TextCalendar().formatmonthname(2010, 10, 10)
565565
self.assertEqual(old_october, new_october)
566566

567+
def test_locale_calendar_formatweekday(self):
568+
try:
569+
# formatweekday uses different day names based on the available width.
570+
cal = calendar.LocaleTextCalendar(locale='en_US')
571+
# For short widths, a centered, abbreviated name is used.
572+
self.assertEqual(cal.formatweekday(0, 5), " Mon ")
573+
# For really short widths, even the abbreviated name is truncated.
574+
self.assertEqual(cal.formatweekday(0, 2), "Mo")
575+
# For long widths, the full day name is used.
576+
self.assertEqual(cal.formatweekday(0, 10), " Monday ")
577+
except locale.Error:
578+
raise unittest.SkipTest('cannot set the en_US locale')
579+
580+
def test_locale_html_calendar_custom_css_class_month_name(self):
581+
try:
582+
cal = calendar.LocaleHTMLCalendar(locale='')
583+
local_month = cal.formatmonthname(2010, 10, 10)
584+
except locale.Error:
585+
# cannot set the system default locale -- skip rest of test
586+
raise unittest.SkipTest('cannot set the system default locale')
587+
self.assertIn('class="month"', local_month)
588+
cal.cssclass_month_head = "text-center month"
589+
local_month = cal.formatmonthname(2010, 10, 10)
590+
self.assertIn('class="text-center month"', local_month)
591+
592+
def test_locale_html_calendar_custom_css_class_weekday(self):
593+
try:
594+
cal = calendar.LocaleHTMLCalendar(locale='')
595+
local_weekday = cal.formatweekday(6)
596+
except locale.Error:
597+
# cannot set the system default locale -- skip rest of test
598+
raise unittest.SkipTest('cannot set the system default locale')
599+
self.assertIn('class="sun"', local_weekday)
600+
cal.cssclasses_weekday_head = ["mon2", "tue2", "wed2", "thu2", "fri2", "sat2", "sun2"]
601+
local_weekday = cal.formatweekday(6)
602+
self.assertIn('class="sun2"', local_weekday)
603+
567604
def test_itermonthdays3(self):
568605
# ensure itermonthdays3 doesn't overflow after datetime.MAXYEAR
569606
list(calendar.Calendar().itermonthdays3(datetime.MAXYEAR, 12))
@@ -595,6 +632,14 @@ def test_itermonthdays2(self):
595632
self.assertEqual(days[0][1], firstweekday)
596633
self.assertEqual(days[-1][1], (firstweekday - 1) % 7)
597634

635+
def test_iterweekdays(self):
636+
week0 = list(range(7))
637+
for firstweekday in range(7):
638+
cal = calendar.Calendar(firstweekday)
639+
week = list(cal.iterweekdays())
640+
expected = week0[firstweekday:] + week0[:firstweekday]
641+
self.assertEqual(week, expected)
642+
598643

599644
class MonthCalendarTestCase(unittest.TestCase):
600645
def setUp(self):
@@ -837,7 +882,8 @@ def test_option_locale(self):
837882
self.assertFailure('-L')
838883
self.assertFailure('--locale')
839884
self.assertFailure('-L', 'en')
840-
lang, enc = locale.getdefaultlocale()
885+
886+
lang, enc = locale.getlocale()
841887
lang = lang or 'C'
842888
enc = enc or 'UTF-8'
843889
try:
@@ -912,11 +958,10 @@ def test_html_output_year_css(self):
912958

913959
class MiscTestCase(unittest.TestCase):
914960
def test__all__(self):
915-
not_exported = {'mdays', 'January', 'February', 'EPOCH',
916-
'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY',
917-
'SATURDAY', 'SUNDAY', 'different_locale', 'c',
918-
'prweek', 'week', 'format', 'formatstring', 'main',
919-
'monthlen', 'prevmonth', 'nextmonth'}
961+
not_exported = {
962+
'mdays', 'January', 'February', 'EPOCH',
963+
'different_locale', 'c', 'prweek', 'week', 'format',
964+
'formatstring', 'main', 'monthlen', 'prevmonth', 'nextmonth'}
920965
support.check__all__(self, calendar, not_exported=not_exported)
921966

922967

0 commit comments

Comments
 (0)