Skip to content

Commit ea61263

Browse files
fix: add tests and fix docstrings
1 parent 9be3153 commit ea61263

File tree

2 files changed

+75
-13
lines changed

2 files changed

+75
-13
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
"""This file contains all test for the tooling.py file.
2+
3+
Classes:
4+
EventsToolingTest: Test events tooling.
5+
"""
6+
7+
from django.test import TestCase
8+
from mock import Mock
9+
10+
11+
class OpenEdxPublicSignalTest(TestCase):
12+
"""
13+
Test cases for Open edX events base class.
14+
"""
15+
16+
def test_get_signal_metadata(self):
17+
"""
18+
This methods tests getting generated metadata for an event.
19+
20+
Expected behavior:
21+
Returns the metadata containing information about the event.
22+
"""
23+
24+
def test_event_instantiation_exception(self):
25+
"""
26+
This method tests when an event is instantiated without event_type or
27+
event data.
28+
29+
Expected behavior:
30+
An InstantiationException exception is raised.
31+
"""
32+
33+
def test_send_event_successfully(self):
34+
"""
35+
This method tests the process of sending an event.
36+
37+
Expected behavior:
38+
The event is sent as a django signal.
39+
"""
40+
41+
def test_invalid_sender(self):
42+
"""
43+
This method tests sending an event with invalid setup on the sender
44+
side.
45+
46+
Expected behavior:
47+
An SenderValidationException exception is raised.
48+
"""
49+
50+
def test_send_event_with_django(self):
51+
"""
52+
This method tests sending an event using the `send` built-in Django
53+
method.
54+
55+
Expected behavior:
56+
A warning is showed advicing to use Open edX events custom
57+
send_signal method.
58+
"""

openedx_events/tooling.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ def __init__(self, event_type=None, data=None, minor_version="0.0"):
2424
self.minor_version = minor_version
2525
super().__init__()
2626

27+
def __repr__(self):
28+
return "OpenEdxPublicSignal: {event_type}".format(self.event_type)
29+
2730
def get_signal_metadata(self):
2831
"""Used to set signal extra metadata when an event is triggered.
2932
@@ -34,23 +37,27 @@ def get_signal_metadata(self):
3437
"""
3538

3639
def get_current_time():
37-
"""Helper function used to get timestamp when the event ocurred.
40+
"""
41+
Helper function used to get timestamp when the event ocurred.
3842
"""
3943
return str(datetime.utcnow().isoformat()) + "Z"
4044

4145
def get_source():
42-
"""Helper function used to get logical source of an event.
46+
"""
47+
Helper function used to get logical source of an event.
4348
"""
4449
return "openedx/{service}/web".format(service=getattr(settings, 'SERVICE_VARIANT', ''))
4550

4651
def get_source_host():
47-
"""Helper function used to get physical source of the event.
52+
"""
53+
Helper function used to get physical source of the event.
4854
"""
4955
current_request = crum.get_current_request()
5056
return current_request.get_host() if current_request else None
5157

5258
def get_spec_version():
53-
"""Helper function used to get the version of specification which
59+
"""
60+
Helper function used to get the version of specification which
5461
Open edX events library uses.
5562
"""
5663
return openedx_events.__version__
@@ -65,7 +72,8 @@ def get_spec_version():
6572
}
6673

6774
def send_event(self, **kwargs):
68-
"""Send method for Open edX signals.
75+
"""
76+
Custom send method for Open edX signals.
6977
7078
Sends signals using Django signals send method making argument
7179
validation in the process.
@@ -83,7 +91,8 @@ def send_event(self, **kwargs):
8391
"""
8492

8593
def validate_sender():
86-
"""Helper method used to validate what the sender uses as arguments.
94+
"""
95+
Helper method used to validate what the sender uses as arguments.
8796
"""
8897
if len(kwargs.keys()) != len(self.data.keys()):
8998
raise SenderValidationException()
@@ -99,17 +108,12 @@ def validate_sender():
99108
super().send(sender, **kwargs)
100109

101110
def send(self, sender, **kwargs): # pylint: disable=unused-argument
102-
"""Override method used to advice the sender to use our custom method.
111+
"""
112+
Override method used to advice the sender to use our custom method.
103113
104114
Example usage:
105115
106116
Arguments:
107117
sender:
108-
109-
Keyword arguments:
110-
111-
Returns:
112-
113-
Exceptions raised:
114118
"""
115119
warnings.warn("Please, use 'send_event' when triggering an Open edX event.")

0 commit comments

Comments
 (0)