Tôi có một ứng dụng Django được gọi là "nhà xuất bản", nó kết nối với các tín hiệu khác nhau trong dự án django của tôi và khi nhận được nó sẽ gửi một tin nhắn đến hàng đợi thỏmq. Những gì tôi muốn làm là để có thể kiểm tra rằng mã thiết lập của tôi đang kết nối với các tín hiệu chính xác.Kiểm tra xem tôi đã kết nối với một tín hiệu cụ thể ở Django
cấu trúc Ứng dụng của tôi trông giống như:
publisher
- __init__.py
- signals.py
- tests.py
__init__.py của tôi trông giống như:
import signals
và signals.py tôi:
def receiver_function(*args, **kwargs):
#Does rabbitmq stuff
my_interesting_signal.connect(receiver_function)
Tôi đã nghĩ đến việc vá các chức năng thu và kiểm tra xem mô hình có được gọi khi tôi gửi tín hiệu không:
tests.py:
class SignalsTeste(TestCase):
def_test_connection(self):
with patch('publisher.signals.receiver_function') as receiver_mock:
my_interesting_signal.application_created.send(None)
self.assertEquals(receiver_mock.call_count, 1)
Tuy nhiên vì các module tín hiệu được nhập khẩu, và do đó các kết nối tín hiệu được thực hiện trước khi các cuộc thử nghiệm đang chạy, phương pháp này không làm việc như các kết nối được thực hiện trước khi chức năng là vá ......
Có ai có thể đề xuất chiến lược thay thế không?
Tôi không biết nếu tôi nhận được điều này thẳng nhưng tôi theo dõi tín hiệu của tôi bằng văn bản cho một bản ghi trong chức năng nhận def receiver_function (* args, ** kwargs): – PepperoniPizza