|
|
@@ -1,35 +1,15 @@
|
|
1
|
1
|
from django_dynamic_fixture import G
|
|
2
|
2
|
|
|
3
|
|
-from mock import Mock
|
|
4
|
|
-import contextlib
|
|
5
|
3
|
from nose.plugins.attrib import attr
|
|
6
|
4
|
|
|
7
|
5
|
from oscar.test.testcases import WebTestCase
|
|
8
|
6
|
from oscar.test.factories import create_product
|
|
9
|
7
|
from oscar.core.compat import get_user_model
|
|
10
|
8
|
from oscar.apps.catalogue.reviews.signals import review_added
|
|
11
|
|
-
|
|
|
9
|
+from oscar.test.contextmanagers import mock_signal_receiver
|
|
12
|
10
|
|
|
13
|
11
|
User = get_user_model()
|
|
14
|
12
|
|
|
15
|
|
-@contextlib.contextmanager
|
|
16
|
|
-def mock_signal_receiver(signal, wraps=None, **kwargs):
|
|
17
|
|
- """
|
|
18
|
|
- Temporarily attaches a receiver to the provided ``signal`` within the scope
|
|
19
|
|
- of the context manager.
|
|
20
|
|
-
|
|
21
|
|
- >>> with mock_signal_receiver(post_save, sender=Model) as receiver:
|
|
22
|
|
- >>> Model.objects.create()
|
|
23
|
|
- >>> assert receiver.call_count = 1
|
|
24
|
|
- """
|
|
25
|
|
- if wraps is None:
|
|
26
|
|
- wraps = lambda *args, **kwargs: None
|
|
27
|
|
-
|
|
28
|
|
- receiver = Mock(wraps=wraps)
|
|
29
|
|
- signal.connect(receiver, **kwargs)
|
|
30
|
|
- yield receiver
|
|
31
|
|
- signal.disconnect(receiver)
|
|
32
|
|
-
|
|
33
|
13
|
|
|
34
|
14
|
@attr('reviews')
|
|
35
|
15
|
class TestACustomer(WebTestCase):
|