From 875f37f78063bfa338389d94fcbb7ac7d4b9a6e6 Mon Sep 17 00:00:00 2001 From: Aleksandr Zainulgabidinov <151671519+DatPill@users.noreply.github.com> Date: Sat, 4 Apr 2026 01:24:34 +0300 Subject: [PATCH] Feature/eq method for default (#1789) * Add changelog for #1707 * Add __eq__ and __hash__ methods to the Default class * Add tests for the eq and hash methods to the TestDefault --- CHANGES/1707.feature.rst | 1 + aiogram/client/default.py | 8 ++++++++ tests/test_api/test_client/test_default.py | 9 +++++++++ 3 files changed, 18 insertions(+) create mode 100644 CHANGES/1707.feature.rst diff --git a/CHANGES/1707.feature.rst b/CHANGES/1707.feature.rst new file mode 100644 index 00000000..9f8eded3 --- /dev/null +++ b/CHANGES/1707.feature.rst @@ -0,0 +1 @@ +Added `__eq__` and `__hash__` methods to the `Default` class. diff --git a/aiogram/client/default.py b/aiogram/client/default.py index ee422982..00c8645e 100644 --- a/aiogram/client/default.py +++ b/aiogram/client/default.py @@ -28,6 +28,14 @@ class Default: def __repr__(self) -> str: return f"<{self}>" + def __eq__(self, other: object) -> bool: + if not isinstance(other, Default): + return NotImplemented + return self._name == other._name + + def __hash__(self) -> int: + return hash(self._name) + @dataclass(**dataclass_kwargs(slots=True, kw_only=True)) class DefaultBotProperties: diff --git a/tests/test_api/test_client/test_default.py b/tests/test_api/test_client/test_default.py index 2445c435..7e354c89 100644 --- a/tests/test_api/test_client/test_default.py +++ b/tests/test_api/test_client/test_default.py @@ -24,6 +24,15 @@ class TestDefault: default = Default("test") assert repr(default) == "" + def test_eq_same_name(self): + assert Default("test") == Default("test") + + def test_eq_different_name(self): + assert Default("foo") != Default("bar") + + def test_hash(self): + assert hash(Default("test")) == hash(Default("test")) + class TestDefaultBotProperties: def test_post_init_empty(self):