SR
Size: a a a
SR
АА
АА
SR
АА
Е
АА
М
s
АА
М
# mymodule.py
from blinker import signal
my_signal = signal('my_sig')
def make_things_good():
my_signal.send(1)
@my_signal.connect
def doing_stuff(sender):
if sender == 1:
perform_task_one()
perform_task_three()
if weather == 'good':
do_some_stuff()
else:
perform_task_two()
from mock import patch
@patch('mymodule.doing_stuff')
def test_something(stuff_mock):
make_things_good()
stuff_mock.assertCalledOnce()
doing_stuff, он перестает откликаться на сигнал my_signalSA
SA
from unittest.mock import patch, MagicMock
from mymodule import my_signal, make_things_good
def test_doing_stuff():
mocked_doing_stuff = MagicMock()
mocked_doing_stuff = my_signal.connect(mocked_doing_stuff)
with patch('mymodule.doing_stuff', mocked_doing_stuff):
make_things_good()
mocked_doing_stuff.assert_called_once()
SA
М
def _doing_stuff(sender):
do_original_code_here()
@my_signal.connect
def doing_stuff(sender):
return _doing_stuff(sender)
_doing_stuff. Просто потом будет не совсем понятно, зачем так сделано, если не посмотреть в тесты.SA
def _doing_stuff(sender):
do_original_code_here()
@my_signal.connect
def doing_stuff(sender):
return _doing_stuff(sender)
_doing_stuff. Просто потом будет не совсем понятно, зачем так сделано, если не посмотреть в тесты.