Replace pytz dependency in tests (#3165)

This commit is contained in:
Will Thong 2023-08-15 19:07:39 +01:00 committed by GitHub
commit 2eeff62fd7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 19 additions and 16 deletions

View file

@ -64,7 +64,6 @@ automatically installed without any action on your part:
* `pygments <https://pypi.org/project/Pygments/>`_, for syntax highlighting
* `docutils <https://pypi.org/project/docutils/>`_, for supporting
reStructuredText as an input format
* `pytz <https://pypi.org/project/pytz/>`_, for timezone definitions
* `blinker <https://pypi.org/project/blinker/>`_, an object-to-object and
broadcast signaling system
* `unidecode <https://pypi.org/project/Unidecode/>`_, for ASCII

View file

@ -9,9 +9,9 @@ from html import unescape
from urllib.parse import unquote, urljoin, urlparse, urlunparse
try:
import zoneinfo
from zoneinfo import ZoneInfo
except ModuleNotFoundError:
from backports import zoneinfo
from backports.zoneinfo import ZoneInfo
from pelican.plugins import signals
@ -127,7 +127,7 @@ class Content:
# manage timezone
default_timezone = settings.get("TIMEZONE", "UTC")
timezone = getattr(self, "timezone", default_timezone)
self.timezone = zoneinfo.ZoneInfo(timezone)
self.timezone = ZoneInfo(timezone)
if hasattr(self, 'date'):
self.date = set_date_tzinfo(self.date, timezone)

View file

@ -3,10 +3,14 @@ import logging
import os
import shutil
import time
from datetime import timezone
from sys import platform
from tempfile import mkdtemp
import pytz
try:
from zoneinfo import ZoneInfo
except ModuleNotFoundError:
from backports.zoneinfo import ZoneInfo
from pelican import utils
from pelican.generators import TemplatePagesGenerator
@ -50,21 +54,21 @@ class TestUtils(LoggedTestCase):
year=2012, month=11, day=22, hour=22, minute=11)
date_hour_z = utils.SafeDatetime(
year=2012, month=11, day=22, hour=22, minute=11,
tzinfo=pytz.timezone('UTC'))
tzinfo=timezone.utc)
date_hour_est = utils.SafeDatetime(
year=2012, month=11, day=22, hour=22, minute=11,
tzinfo=pytz.timezone('EST'))
tzinfo=ZoneInfo("EST"))
date_hour_sec = utils.SafeDatetime(
year=2012, month=11, day=22, hour=22, minute=11, second=10)
date_hour_sec_z = utils.SafeDatetime(
year=2012, month=11, day=22, hour=22, minute=11, second=10,
tzinfo=pytz.timezone('UTC'))
tzinfo=timezone.utc)
date_hour_sec_est = utils.SafeDatetime(
year=2012, month=11, day=22, hour=22, minute=11, second=10,
tzinfo=pytz.timezone('EST'))
tzinfo=ZoneInfo("EST"))
date_hour_sec_frac_z = utils.SafeDatetime(
year=2012, month=11, day=22, hour=22, minute=11, second=10,
microsecond=123000, tzinfo=pytz.timezone('UTC'))
microsecond=123000, tzinfo=timezone.utc)
dates = {
'2012-11-22': date,
'2012/11/22': date,
@ -86,13 +90,13 @@ class TestUtils(LoggedTestCase):
iso_8601_date = utils.SafeDatetime(year=1997, month=7, day=16)
iso_8601_date_hour_tz = utils.SafeDatetime(
year=1997, month=7, day=16, hour=19, minute=20,
tzinfo=pytz.timezone('CET'))
tzinfo=ZoneInfo("Europe/London"))
iso_8601_date_hour_sec_tz = utils.SafeDatetime(
year=1997, month=7, day=16, hour=19, minute=20, second=30,
tzinfo=pytz.timezone('CET'))
tzinfo=ZoneInfo("Europe/London"))
iso_8601_date_hour_sec_ms_tz = utils.SafeDatetime(
year=1997, month=7, day=16, hour=19, minute=20, second=30,
microsecond=450000, tzinfo=pytz.timezone('CET'))
microsecond=450000, tzinfo=ZoneInfo("Europe/London"))
iso_8601 = {
'1997-07-16': iso_8601_date,
'1997-07-16T19:20+01:00': iso_8601_date_hour_tz,

View file

@ -19,9 +19,9 @@ from operator import attrgetter
import dateutil.parser
try:
import zoneinfo
from zoneinfo import ZoneInfo
except ModuleNotFoundError:
from backports import zoneinfo
from backports.zoneinfo import ZoneInfo
from markupsafe import Markup
@ -921,7 +921,7 @@ class FileSystemWatcher:
def set_date_tzinfo(d, tz_name=None):
"""Set the timezone for dates that don't have tzinfo"""
if tz_name and not d.tzinfo:
timezone = zoneinfo.ZoneInfo(tz_name)
timezone = ZoneInfo(tz_name)
d = d.replace(tzinfo=timezone)
return SafeDatetime(
d.year, d.month, d.day, d.hour, d.minute, d.second, d.microsecond, d.tzinfo