refactor events; add tests
This commit is contained in:
parent
c104ed3f8b
commit
3f727d892c
3 changed files with 59 additions and 19 deletions
|
@ -1,6 +1,6 @@
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from lbrynet.analytics import utils
|
from lbrynet.core import utils
|
||||||
|
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
@ -23,30 +23,32 @@ class Events(object):
|
||||||
self.session_id = session_id
|
self.session_id = session_id
|
||||||
|
|
||||||
def heartbeat(self):
|
def heartbeat(self):
|
||||||
return {
|
return self._event('Heartbeat')
|
||||||
'userId': 'lbry',
|
|
||||||
'event': 'Heartbeat',
|
|
||||||
'properties': {
|
|
||||||
'lbry_id': self.lbry_id,
|
|
||||||
'session_id': self.session_id
|
|
||||||
},
|
|
||||||
'context': self.context,
|
|
||||||
'timestamp': utils.now()
|
|
||||||
}
|
|
||||||
|
|
||||||
def download_started(self, name, stream_info=None):
|
def download_started(self, name, stream_info=None):
|
||||||
return {
|
properties = {
|
||||||
'userId': 'lbry',
|
|
||||||
'event': 'Download Started',
|
|
||||||
'properties': {
|
|
||||||
'lbry_id': self.lbry_id,
|
|
||||||
'session_id': self.session_id,
|
|
||||||
'name': name,
|
'name': name,
|
||||||
'stream_info': get_sd_hash(stream_info)
|
'stream_info': get_sd_hash(stream_info)
|
||||||
},
|
|
||||||
'context': self.context,
|
|
||||||
'timestamp': utils.now()
|
|
||||||
}
|
}
|
||||||
|
return self._event('Download Started', properties)
|
||||||
|
|
||||||
|
def _event(self, event, event_properties=None):
|
||||||
|
return {
|
||||||
|
'userId': 'lbry',
|
||||||
|
'event': event,
|
||||||
|
'properties': self._properties(event_properties),
|
||||||
|
'context': self.context,
|
||||||
|
'timestamp': utils.isonow()
|
||||||
|
}
|
||||||
|
|
||||||
|
def _properties(self, event_properties=None):
|
||||||
|
event_properties = event_properties or {}
|
||||||
|
properties = {
|
||||||
|
'lbry_id': self.lbry_id,
|
||||||
|
'session_id': self.session_id,
|
||||||
|
}
|
||||||
|
properties.update(event_properties)
|
||||||
|
return properties
|
||||||
|
|
||||||
|
|
||||||
def make_context(platform, wallet, is_dev=False):
|
def make_context(platform, wallet, is_dev=False):
|
||||||
|
|
0
tests/unit/analytics/__init__.py
Normal file
0
tests/unit/analytics/__init__.py
Normal file
38
tests/unit/analytics/test_events.py
Normal file
38
tests/unit/analytics/test_events.py
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
from lbrynet.analytics import events
|
||||||
|
|
||||||
|
from twisted.trial import unittest
|
||||||
|
|
||||||
|
from tests import util
|
||||||
|
|
||||||
|
|
||||||
|
class EventsTest(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
util.resetTime(self)
|
||||||
|
self.event_generator = events.Events('any valid json datatype', 'lbry123', 'session456')
|
||||||
|
|
||||||
|
def test_heartbeat(self):
|
||||||
|
result = self.event_generator.heartbeat()
|
||||||
|
desired_result = {
|
||||||
|
'context': 'any valid json datatype',
|
||||||
|
'event': 'Heartbeat',
|
||||||
|
'properties': {'lbry_id': 'lbry123', 'session_id': 'session456'},
|
||||||
|
'timestamp': '2016-01-01T00:00:00Z',
|
||||||
|
'userId': 'lbry'
|
||||||
|
}
|
||||||
|
self.assertEqual(desired_result, result)
|
||||||
|
|
||||||
|
def test_download_started(self):
|
||||||
|
result = self.event_generator.download_started('great gatsby')
|
||||||
|
desired_result = {
|
||||||
|
'context': 'any valid json datatype',
|
||||||
|
'event': 'Download Started',
|
||||||
|
'properties': {
|
||||||
|
'lbry_id': 'lbry123',
|
||||||
|
'session_id': 'session456',
|
||||||
|
'name': 'great gatsby',
|
||||||
|
'stream_info': None,
|
||||||
|
},
|
||||||
|
'timestamp': '2016-01-01T00:00:00Z',
|
||||||
|
'userId': 'lbry'
|
||||||
|
}
|
||||||
|
self.assertEqual(desired_result, result)
|
Loading…
Reference in a new issue