Skip to content

Commit 939c1ba

Browse files
committed
Fix hashing and equality consistency in RabbitMQ schemas
1 parent 14ba2ef commit 939c1ba

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

faststream/rabbit/schemas/exchange.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ def __eq__(self, value: object, /) -> bool:
4444
and self.routing_key == value.routing_key
4545
and self.durable == value.durable
4646
and self.auto_delete == value.auto_delete
47+
and self.robust == value.robust
48+
and self.arguments == value.arguments
4749
)
4850

4951
def __hash__(self) -> int:
@@ -55,6 +57,8 @@ def __hash__(self) -> int:
5557
self.routing_key,
5658
self.durable,
5759
self.auto_delete,
60+
self.robust,
61+
frozenset((self.arguments or {}).items()),
5862
),
5963
)
6064

faststream/rabbit/schemas/queue.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ def __eq__(self, value: object, /) -> bool:
6363
and self.durable == value.durable
6464
and self.exclusive == value.exclusive
6565
and self.auto_delete == value.auto_delete
66+
and self.robust == value.robust
67+
and self.arguments == value.arguments
6668
)
6769

6870
def __hash__(self) -> int:
@@ -73,6 +75,8 @@ def __hash__(self) -> int:
7375
self.durable,
7476
self.exclusive,
7577
self.auto_delete,
78+
self.robust,
79+
frozenset((self.arguments or {}).items()),
7680
),
7781
)
7882

tests/brokers/rabbit/specific/test_channels.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ async def test_subscriber_use_shared_channel() -> None:
1212
broker = RabbitBroker(logger=None)
1313

1414
sub1 = broker.subscriber(uuid4().hex)
15-
sub2 = broker.subscriber(uuid4().hex, channel=Channel())
15+
sub2 = broker.subscriber(uuid4().hex, channel=Channel(prefetch_count=1))
1616

1717
shared_channel = Channel()
1818
sub3 = broker.subscriber(uuid4().hex, channel=shared_channel)

0 commit comments

Comments
 (0)