Skip to content

Commit 6bced6a

Browse files
committed
- Fixed tests.
issue #283
1 parent 6fda270 commit 6bced6a

File tree

5 files changed

+49
-118
lines changed

5 files changed

+49
-118
lines changed

packages/plugins/minos-broker-rabbitmq/minos/plugins/rabbitmq/common.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ def with_config(self, config: Config):
2121
common_config = broker_config.get("common", dict())
2222

2323
self.kwargs |= {
24-
"group_id": config.get_name(),
2524
"host": common_config.get("host"),
2625
"port": common_config.get("port"),
2726
}

packages/plugins/minos-broker-rabbitmq/minos/plugins/rabbitmq/subscriber.py

Lines changed: 10 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@
2929
PostgreSqlBrokerSubscriberQueueBuilder,
3030
QueuedBrokerSubscriberBuilder,
3131
)
32+
from minos.plugins.rabbitmq import (
33+
RabbitMQBrokerBuilderMixin,
34+
)
3235

3336
logger = logging.getLogger(__name__)
3437

@@ -39,27 +42,22 @@ class RabbitMQBrokerSubscriber(BrokerSubscriber):
3942
def __init__(
4043
self,
4144
topics: Iterable[str],
42-
broker_host: str,
43-
broker_port: int,
45+
host: str,
46+
port: int,
4447
group_id: Optional[str] = None,
4548
remove_topics_on_destroy: bool = False,
4649
**kwargs,
4750
):
4851
super().__init__(topics, **kwargs)
49-
self.broker_host = broker_host
50-
self.broker_port = broker_port
52+
self.host = host
53+
self.port = port
5154
self.group_id = group_id
5255

5356
self.remove_topics_on_destroy = remove_topics_on_destroy
5457

55-
@classmethod
56-
def _from_config(cls, config: MinosConfig, **kwargs) -> RabbitMQBrokerSubscriber:
57-
# noinspection PyTypeChecker
58-
return RabbitMQBrokerSubscriberBuilder.new().with_config(config).with_kwargs(kwargs).build()
59-
6058
async def _setup(self) -> None:
6159
await super()._setup()
62-
self.connection = await connect(f"amqp://guest:guest@{self.broker_host}:{self.broker_port}/")
60+
self.connection = await connect(f"amqp://guest:guest@{self.host}:{self.port}/")
6361

6462
async def _destroy(self) -> None:
6563
await self.connection.close()
@@ -76,52 +74,8 @@ async def _receive(self) -> BrokerMessage:
7674
pass
7775

7876

79-
class RabbitMQBrokerSubscriberBuilder(BrokerSubscriberBuilder):
77+
class RabbitMQBrokerSubscriberBuilder(BrokerSubscriberBuilder[RabbitMQBrokerSubscriber], RabbitMQBrokerBuilderMixin):
8078
"""RabbitMQ Broker Subscriber Builder class."""
8179

82-
def with_config(self, config: Config) -> BrokerSubscriberBuilder:
83-
"""Set config.
84-
85-
:param config: The config to be set.
86-
:return: This method return the builder instance.
87-
"""
88-
broker_config = config.get_interface_by_name("broker")
89-
common_config = broker_config["common"]
90-
91-
self.kwargs |= {
92-
"group_id": config.get_name(),
93-
"broker_host": common_config["host"],
94-
"broker_port": common_config["port"],
95-
}
96-
return self
97-
98-
def build(self) -> BrokerSubscriber:
99-
"""Build the instance.
100-
101-
:return: A ``RabbitMQBrokerSubscriber`` instance.
102-
"""
103-
return RabbitMQBrokerSubscriber(**self.kwargs)
104-
105-
106-
class PostgreSqlQueuedRabbitMQBrokerSubscriberBuilder(QueuedBrokerSubscriberBuilder):
107-
"""PostgreSql Queued RabbitMQ Broker Subscriber Builder class."""
108-
109-
def __init__(self, *args, **kwargs):
110-
super().__init__(
111-
*args,
112-
impl_builder=RabbitMQBrokerSubscriberBuilder.new(),
113-
queue_builder=PostgreSqlBrokerSubscriberQueueBuilder.new(),
114-
**kwargs,
115-
)
116-
117-
118-
class InMemoryQueuedRabbitMQBrokerSubscriberBuilder(QueuedBrokerSubscriberBuilder):
119-
"""In Memory Queued RabbitMQ Broker Subscriber Builder class."""
12080

121-
def __init__(self, *args, **kwargs):
122-
super().__init__(
123-
*args,
124-
impl_builder=RabbitMQBrokerSubscriberBuilder.new(),
125-
queue_builder=InMemoryBrokerSubscriberQueueBuilder.new(),
126-
**kwargs,
127-
)
81+
RabbitMQBrokerSubscriber.set_builder(RabbitMQBrokerSubscriberBuilder)
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import unittest
2+
3+
from minos.common import (
4+
Config,
5+
)
6+
from minos.plugins.rabbitmq import (
7+
RabbitMQBrokerBuilderMixin,
8+
)
9+
from tests.utils import (
10+
CONFIG_FILE_PATH,
11+
)
12+
13+
14+
class TestRabbitMQBrokerBuilderMixin(unittest.IsolatedAsyncioTestCase):
15+
def test_constructor(self):
16+
mixin = RabbitMQBrokerBuilderMixin()
17+
18+
config = Config(CONFIG_FILE_PATH)
19+
mixin.with_config(config)
20+
21+
common_config = config.get_interface_by_name("broker")["common"]
22+
23+
expected = {
24+
"host": common_config["host"],
25+
"port": common_config["port"],
26+
}
27+
self.assertEqual(expected, mixin.kwargs)
28+
29+
30+
if __name__ == "__main__":
31+
unittest.main()

packages/plugins/minos-broker-rabbitmq/tests/test_rabbitmq/test_publisher.py

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,8 @@
1010
BrokerMessageV1,
1111
BrokerMessageV1Payload,
1212
BrokerPublisher,
13-
InMemoryBrokerPublisherQueue,
14-
PostgreSqlBrokerPublisherQueue,
1513
)
1614
from minos.plugins.rabbitmq import (
17-
InMemoryQueuedRabbitMQBrokerPublisher,
18-
PostgreSqlQueuedRabbitMQBrokerPublisher,
1915
RabbitMQBrokerPublisher,
2016
)
2117
from tests.utils import (
@@ -34,8 +30,8 @@ def test_from_config(self):
3430
publisher = RabbitMQBrokerPublisher.from_config(config)
3531

3632
self.assertIsInstance(publisher, RabbitMQBrokerPublisher)
37-
self.assertEqual(broker_config["host"], publisher.broker_host)
38-
self.assertEqual(broker_config["port"], publisher.broker_port)
33+
self.assertEqual(broker_config["host"], publisher.host)
34+
self.assertEqual(broker_config["port"], publisher.port)
3935

4036
@patch("minos.plugins.rabbitmq.publisher.connect")
4137
async def test_send(self, connect_mock):
@@ -54,21 +50,5 @@ async def test_destroy(self, destroy_mock):
5450
self.assertEqual(1, destroy_mock.call_count)
5551

5652

57-
class TestPostgreSqlQueuedRabbitMQBrokerPublisher(unittest.IsolatedAsyncioTestCase):
58-
def test_from_config(self):
59-
publisher = PostgreSqlQueuedRabbitMQBrokerPublisher.from_config(CONFIG_FILE_PATH)
60-
self.assertIsInstance(publisher, PostgreSqlQueuedRabbitMQBrokerPublisher)
61-
self.assertIsInstance(publisher.impl, RabbitMQBrokerPublisher)
62-
self.assertIsInstance(publisher.queue, PostgreSqlBrokerPublisherQueue)
63-
64-
65-
class TestInMemoryQueuedRabbitMQBrokerPublisher(unittest.IsolatedAsyncioTestCase):
66-
def test_from_config(self):
67-
publisher = InMemoryQueuedRabbitMQBrokerPublisher.from_config(CONFIG_FILE_PATH)
68-
self.assertIsInstance(publisher, InMemoryQueuedRabbitMQBrokerPublisher)
69-
self.assertIsInstance(publisher.impl, RabbitMQBrokerPublisher)
70-
self.assertIsInstance(publisher.queue, InMemoryBrokerPublisherQueue)
71-
72-
7353
if __name__ == "__main__":
7454
unittest.main()

packages/plugins/minos-broker-rabbitmq/tests/test_rabbitmq/test_subscriber.py

Lines changed: 6 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,8 @@
1111
)
1212
from minos.networks import (
1313
BrokerSubscriber,
14-
InMemoryBrokerSubscriberQueue,
15-
PostgreSqlBrokerSubscriberQueue,
16-
QueuedBrokerSubscriber,
1714
)
1815
from minos.plugins.rabbitmq import (
19-
InMemoryQueuedRabbitMQBrokerSubscriberBuilder,
20-
PostgreSqlQueuedRabbitMQBrokerSubscriberBuilder,
2116
RabbitMQBrokerSubscriber,
2217
RabbitMQBrokerSubscriberBuilder,
2318
)
@@ -36,9 +31,8 @@ async def test_from_config(self):
3631
config = Config(CONFIG_FILE_PATH)
3732
broker_config = config.get_interface_by_name("broker")["common"]
3833
async with RabbitMQBrokerSubscriber.from_config(config, topics={"foo", "bar"}) as subscriber:
39-
self.assertEqual(broker_config["host"], subscriber.broker_host)
40-
self.assertEqual(broker_config["port"], subscriber.broker_port)
41-
self.assertEqual(config.get_name(), subscriber.group_id)
34+
self.assertEqual(broker_config["host"], subscriber.host)
35+
self.assertEqual(broker_config["port"], subscriber.port)
4236
self.assertEqual(False, subscriber.remove_topics_on_destroy)
4337
self.assertEqual({"foo", "bar"}, subscriber.topics)
4438

@@ -60,9 +54,8 @@ def test_with_config(self):
6054
common_config = self.config.get_interface_by_name("broker")["common"]
6155

6256
expected = {
63-
"group_id": self.config.get_name(),
64-
"broker_host": common_config["host"],
65-
"broker_port": common_config["port"],
57+
"host": common_config["host"],
58+
"port": common_config["port"],
6659
}
6760
self.assertEqual(expected, builder.kwargs)
6861

@@ -73,34 +66,8 @@ def test_build(self):
7366

7467
self.assertIsInstance(subscriber, RabbitMQBrokerSubscriber)
7568
self.assertEqual({"one", "two"}, subscriber.topics)
76-
self.assertEqual(common_config["host"], subscriber.broker_host)
77-
self.assertEqual(common_config["port"], subscriber.broker_port)
78-
79-
80-
class TestPostgreSqlQueuedRabbitMQBrokerSubscriberBuilder(unittest.TestCase):
81-
def setUp(self) -> None:
82-
self.config = Config(CONFIG_FILE_PATH)
83-
84-
def test_build(self):
85-
builder = PostgreSqlQueuedRabbitMQBrokerSubscriberBuilder().with_config(self.config).with_topics({"one", "two"})
86-
subscriber = builder.build()
87-
88-
self.assertIsInstance(subscriber, QueuedBrokerSubscriber)
89-
self.assertIsInstance(subscriber.impl, RabbitMQBrokerSubscriber)
90-
self.assertIsInstance(subscriber.queue, PostgreSqlBrokerSubscriberQueue)
91-
92-
93-
class TestInMemoryQueuedRabbitMQBrokerSubscriberBuilder(unittest.TestCase):
94-
def setUp(self) -> None:
95-
self.config = Config(CONFIG_FILE_PATH)
96-
97-
def test_build(self):
98-
builder = InMemoryQueuedRabbitMQBrokerSubscriberBuilder().with_config(self.config).with_topics({"one", "two"})
99-
subscriber = builder.build()
100-
101-
self.assertIsInstance(subscriber, QueuedBrokerSubscriber)
102-
self.assertIsInstance(subscriber.impl, RabbitMQBrokerSubscriber)
103-
self.assertIsInstance(subscriber.queue, InMemoryBrokerSubscriberQueue)
69+
self.assertEqual(common_config["host"], subscriber.host)
70+
self.assertEqual(common_config["port"], subscriber.port)
10471

10572

10673
if __name__ == "__main__":

0 commit comments

Comments
 (0)