Skip to content

Commit 14b2b9e

Browse files
committed
Implement equality per subclass
1 parent 64e2553 commit 14b2b9e

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/pendulum/tz/timezone.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def __new__(cls, key: str) -> Self:
6767
raise InvalidTimezone(key)
6868

6969
def __eq__(self, other: object) -> bool:
70-
return isinstance(other, PendulumTimezone) and self.key == other.key
70+
return isinstance(other, Timezone) and self.key == other.key
7171

7272
@property
7373
def name(self) -> str:
@@ -175,6 +175,9 @@ def __init__(self, offset: int, name: str | None = None) -> None:
175175
self._offset = offset
176176
self._utcoffset = _datetime.timedelta(seconds=offset)
177177

178+
def __eq__(self, other: object) -> bool:
179+
return isinstance(other, FixedTimezone) and self._offset == other._offset
180+
178181
@property
179182
def name(self) -> str:
180183
return self._name

tests/tz/test_timezone.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,11 @@ def test_fixed_timezone():
404404
assert tz2.dst(dt) == timedelta()
405405

406406

407+
def test_fixed_equality():
408+
assert fixed_timezone(19800) == fixed_timezone(19800)
409+
assert fixed_timezone(19800) != fixed_timezone(19801)
410+
411+
407412
def test_just_before_last_transition():
408413
tz = pendulum.timezone("Asia/Shanghai")
409414
dt = datetime(1991, 4, 20, 1, 49, 8, fold=0)

0 commit comments

Comments
 (0)