Skip to content

Commit 0c6a14b

Browse files
committed
Added add_emitter method
A single emitter no longer needs to be wrapped in an array
1 parent 0b14eb1 commit 0c6a14b

2 files changed

Lines changed: 25 additions & 2 deletions

File tree

snowplow_tracker/test/unit/test_tracker.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,10 @@ def test_set_timestamp_1(self):
5454
def test_set_timestamp_2(self):
5555
dtm = Tracker.get_timestamp(1399021242240.0303)
5656
self.assertEquals(dtm, 1399021242240)
57+
58+
def test_add_emitter(self):
59+
e1 = Emitter("d3rkrsqld9gmqf.cloudfront.net", method="get")
60+
e2 = Emitter("d3rkrsqld9gmqf.cloudfront.net", method="post")
61+
t = Tracker(e1, namespace="cloudfront", encode_base64= False, app_id="AF003")
62+
t.add_emitter(e2)
63+
self.assertEquals(t.emitters, [e1, e2])

snowplow_tracker/tracker.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def __init__(self, emitters, subject=None,
5959
namespace=None, app_id=None, encode_base64=DEFAULT_ENCODE_BASE64):
6060
"""
6161
:param emitters: Emitters to which events will be sent
62-
:type emitters: list[>0](emitter)
62+
:type emitters: list[>0](emitter) | emitter
6363
:param subject: Subject to be tracked
6464
:type subject: subject | None
6565
:param namespace: Identifier for the Tracker instance
@@ -72,7 +72,11 @@ def __init__(self, emitters, subject=None,
7272
if subject is None:
7373
subject = _subject.Subject()
7474

75-
self.emitters = emitters
75+
if type(emitters) is list:
76+
self.emitters = emitters
77+
else:
78+
self.emitters = [emitters]
79+
7680
self.subject = subject
7781
self.encode_base64 = encode_base64
7882

@@ -376,3 +380,15 @@ def set_subject(self, subject):
376380
"""
377381
self.subject = subject
378382
return self
383+
384+
@contract
385+
def add_emitter(self, emitter):
386+
"""
387+
Add a new emitter to which events should be passed
388+
389+
:param emitter: New emitter
390+
:type emitter: emitter
391+
:rtype: tracker
392+
"""
393+
self.emitters.append(emitter)
394+
return self

0 commit comments

Comments
 (0)