summaryrefslogtreecommitdiffstats
path: root/omaha_server/omaha/tests
diff options
context:
space:
mode:
Diffstat (limited to 'omaha_server/omaha/tests')
-rw-r--r--omaha_server/omaha/tests/test_api.py35
-rw-r--r--omaha_server/omaha/tests/test_statistics.py83
2 files changed, 47 insertions, 71 deletions
diff --git a/omaha_server/omaha/tests/test_api.py b/omaha_server/omaha/tests/test_api.py
index 35a33b3..6bbde07 100644
--- a/omaha_server/omaha/tests/test_api.py
+++ b/omaha_server/omaha/tests/test_api.py
@@ -322,15 +322,14 @@ class LiveStatistics(APITestCase):
maxDiff = None
def _generate_fake_statistics(self):
- # now = datetime(2016, 2, 13)
date = datetime(2016, 2, 13, 0)
for i in range(self.n_hours):
for id in range(0, i):
- mark_event('online:app:win:2.0.0.0', id, now=date, track_hourly=True)
- mark_event('online:app:mac:4.0.0.1', id, now=date, track_hourly=True)
+ mark_event('request:app:win:2.0.0.0', id, now=date, track_hourly=True)
+ mark_event('request:app:mac:4.0.0.1', id, now=date, track_hourly=True)
for id in range(i, self.n_hours):
- mark_event('online:app:win:1.0.0.0', id, now=date, track_hourly=True)
- mark_event('online:app:mac:3.0.0.0', id, now=date, track_hourly=True)
+ mark_event('request:app:win:1.0.0.0', id, now=date, track_hourly=True)
+ mark_event('request:app:mac:3.0.0.0', id, now=date, track_hourly=True)
date += timedelta(hours=1)
def setUp(self):
@@ -384,9 +383,13 @@ class LiveStatistics(APITestCase):
for (i, hour)in enumerate(hours)])]
self.mac_statistics.append(('4.0.0.1', [[hour.strftime("%Y-%m-%dT%H:%M:%S.%fZ"), i]
for (i, hour)in enumerate(hours)]))
-
- self.data = dict(data=dict(win=dict(self.win_statistics),
- mac=dict(self.mac_statistics)))
+ self.data = {}
+ self.data['hourly'] = dict(data=dict(win=dict(self.win_statistics),
+ mac=dict(self.mac_statistics)))
+ self.data['daily'] = dict(data=dict(win={'1.0.0.0': [['2016-02-13T00:00:00.000000Z', 36], ['2016-02-14T00:00:00.000000Z', 12]],
+ '2.0.0.0': [['2016-02-13T00:00:00.000000Z', 23], ['2016-02-14T00:00:00.000000Z', 35]]},
+ mac={'4.0.0.1': [['2016-02-13T00:00:00.000000Z', 23], ['2016-02-14T00:00:00.000000Z', 35]],
+ '3.0.0.0': [['2016-02-13T00:00:00.000000Z', 36], ['2016-02-14T00:00:00.000000Z', 12]]}))
@is_private()
def test_unauthorized(self):
@@ -394,15 +397,27 @@ class LiveStatistics(APITestCase):
response = client.get(reverse('api-statistics-live', args=('app',)), format='json')
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
+ @freeze_time("2016-02-16")
@is_private()
- def test_list(self):
+ def test_hourly_list(self):
+ start = datetime(2016, 2, 13, 0)
+ end = start + timedelta(hours=self.n_hours-1)
+ response = self.client.get(reverse('api-statistics-live', args=('app',)),
+ dict(start=start.isoformat(), end=end.isoformat()),
+ format='json')
+ self.assertEqual(response.status_code, status.HTTP_200_OK)
+ self.assertDictEqual(StatisticsMonthsSerializer(self.data['hourly']).data, response.data)
+
+ @freeze_time("2016-03-16")
+ @is_private()
+ def test_daily_list(self):
start = datetime(2016, 2, 13, 0)
end = start + timedelta(hours=self.n_hours-1)
response = self.client.get(reverse('api-statistics-live', args=('app',)),
dict(start=start.isoformat(), end=end.isoformat()),
format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
- self.assertDictEqual(StatisticsMonthsSerializer(self.data).data, response.data)
+ self.assertDictEqual(StatisticsMonthsSerializer(self.data['daily']).data, response.data)
class StatisticsMonthsMixin(object):
diff --git a/omaha_server/omaha/tests/test_statistics.py b/omaha_server/omaha/tests/test_statistics.py
index bff2b98..ea1f5f5 100644
--- a/omaha_server/omaha/tests/test_statistics.py
+++ b/omaha_server/omaha/tests/test_statistics.py
@@ -35,7 +35,6 @@ from omaha.parser import parse_request
from omaha.statistics import (
userid_counting,
add_app_statistics,
- add_app_live_statistics,
is_user_active,
get_kwargs_for_model,
parse_os,
@@ -44,7 +43,6 @@ from omaha.statistics import (
parse_apps,
parse_events,
collect_statistics,
- update_live_statistics,
get_users_statistics_months,
get_channel_statistics,
get_users_versions,
@@ -124,11 +122,11 @@ class StatisticsTest(TestCase):
userid = 1
channel = DEFAULT_CHANNEL
platform = 'win'
- app_kwargs = dict(appid='{F97917B1-20AB-48C1-9802-CEF305B10804}', version='30.0.123.1234')
+ app_kwargs = dict(appid='{2882CF9B-D9C2-4edb-9AAF-8ED5FCF366F7}', nextversion='0.0.0.1')
success_app = create_app_xml(events=fixtures.event_install_success, **app_kwargs)
error_app = create_app_xml(events=fixtures.event_install_error, **app_kwargs)
appid = app_kwargs.get('appid')
- version = app_kwargs.get('version')
+ version = app_kwargs.get('nextversion')
events_request_appid = lambda date=now: DayEvents.from_date('request:%s' % appid, date)
events_new_appid = lambda date=now: DayEvents.from_date('new_install:%s' % appid, date)
@@ -138,7 +136,6 @@ class StatisticsTest(TestCase):
events_request_appid_channel = lambda date=now: DayEvents.from_date('request:{}:{}'.format(appid, channel), date)
events_request_appid_platform_version = lambda date=now: DayEvents.from_date('request:{}:{}:{}'.format(appid, platform, version), date)
-
self.assertEqual(len(events_new_appid()), 0)
self.assertEqual(len(events_request_appid()), 0)
self.assertEqual(len(events_request_appid_version()), 0)
@@ -201,31 +198,6 @@ class StatisticsTest(TestCase):
self.assertIn(userid, events_request_appid(next_month))
self.assertIn(userid, events_request_appid_platform(next_month))
- def test_add_app_live_statistics(self):
- request = parse_request(fixtures.request_update_check)
- app = request.findall('app')[0]
-
- now = datetime.utcnow()
- userid = 1
- platform = 'win'
-
- appid = app.get('appid')
- version = app.get('version')
-
- events_appid_version = HourEvents('online:{}:{}'.format(appid, version), now.year, now.month, now.day, now.hour)
- events_appid_platform_version = HourEvents('online:{}:{}:{}'.format(appid, platform, version), now.year, now.month, now.day, now.hour)
-
- self.assertEqual(len(events_appid_version), 0)
- self.assertEqual(len(events_appid_platform_version), 0)
-
- add_app_live_statistics(userid, platform, app)
-
- self.assertEqual(len(events_appid_version), 1)
- self.assertEqual(len(events_appid_platform_version), 1)
-
- self.assertIn(userid, events_appid_version)
- self.assertIn(userid, events_appid_platform_version)
-
def test_is_user_active(self):
userid = '{F07B3878-CD6F-4B96-B52F-95C4D23077E0}'
id = get_id(userid)
@@ -393,7 +365,7 @@ class StatisticsTest(TestCase):
for e in events:
self.assertIn(e, app_req.events.all())
- def test_update_live_statistics_install(self):
+ def test_live_statistics_install(self):
request = parse_request(fixtures.request_event_install_success)
apps = request.findall('app')
app = apps[0]
@@ -406,46 +378,35 @@ class StatisticsTest(TestCase):
version_1 = '0.0.0.1'
version_2 = '0.0.0.2'
- events_appid_version_1 = HourEvents('online:{}:{}'.format(appid, version_1), now.year, now.month, now.day, now.hour)
- events_appid_platform_version_1 = HourEvents('online:{}:{}:{}'.format(appid, platform, version_1), now.year, now.month, now.day, now.hour)
-
- self.assertEqual(len(events_appid_version_1), 0)
- self.assertEqual(len(events_appid_platform_version_1), 0)
+ events_appid_version = lambda version: HourEvents('request:{}:{}'.format(appid, version), now.year, now.month, now.day, now.hour)
+ events_appid_platform_version = lambda version: HourEvents('request:{}:{}'.format(appid, version), now.year, now.month, now.day, now.hour)
- update_live_statistics(userid, apps, platform)
+ self.assertEqual(len(events_appid_version(version_1)), 0)
+ self.assertEqual(len(events_appid_platform_version(version_1)), 0)
+ userid_counting(userid, apps, platform)
- self.assertEqual(len(events_appid_version_1), 1)
- self.assertEqual(len(events_appid_platform_version_1), 1)
+ self.assertEqual(len(events_appid_version(version_1)), 1)
+ self.assertEqual(len(events_appid_platform_version(version_1)), 1)
request = parse_request(fixtures.request_event_update_success)
apps = request.findall('app')
- update_live_statistics(userid, apps, platform)
+ userid_counting(userid, apps, platform)
- events_appid_version_1 = HourEvents('online:{}:{}'.format(appid, version_1), now.year, now.month, now.day, now.hour)
- events_appid_platform_version_1 = HourEvents('online:{}:{}:{}'.format(appid, platform, version_1), now.year, now.month, now.day, now.hour)
- events_appid_version_2 = HourEvents('online:{}:{}'.format(appid, version_2), now.year, now.month, now.day, now.hour)
- events_appid_platform_version_2 = HourEvents('online:{}:{}:{}'.format(appid, platform, version_2), now.year, now.month, now.day, now.hour)
-
- self.assertEqual(len(events_appid_version_1), 0)
- self.assertEqual(len(events_appid_platform_version_1), 0)
- self.assertEqual(len(events_appid_version_2), 1)
- self.assertEqual(len(events_appid_platform_version_2), 1)
+ self.assertEqual(len(events_appid_version(version_1)), 0)
+ self.assertEqual(len(events_appid_platform_version(version_1)), 0)
+ self.assertEqual(len(events_appid_version(version_2)), 1)
+ self.assertEqual(len(events_appid_platform_version(version_2)), 1)
request = parse_request(fixtures.request_event_uninstall_success)
apps = request.findall('app')
- update_live_statistics(userid, apps, platform)
-
- events_appid_version_2 = HourEvents('online:{}:{}'.format(appid, version_2),
- now.year, now.month, now.day, now.hour)
- events_appid_platform_version_2 = HourEvents('online:{}:{}:{}'.format(appid, platform, version_2),
- now.year, now.month, now.day, now.hour)
+ userid_counting(userid, apps, platform)
- self.assertEqual(len(events_appid_version_2), 1)
- self.assertEqual(len(events_appid_platform_version_2), 1)
+ self.assertEqual(len(events_appid_version(version_2)), 1)
+ self.assertEqual(len(events_appid_platform_version(version_2)), 1)
- def test_update_live_statistics_updatecheck(self):
+ def test_live_statistics_updatecheck(self):
request = parse_request(fixtures.request_update_check)
apps = request.findall('app')
app = apps[0]
@@ -457,13 +418,13 @@ class StatisticsTest(TestCase):
appid = app.get('appid')
version = app.get('version')
- events_appid_version = HourEvents('online:{}:{}'.format(appid, version), now.year, now.month, now.day, now.hour)
- events_appid_platform_version = HourEvents('online:{}:{}:{}'.format(appid, platform, version), now.year, now.month, now.day, now.hour)
+ events_appid_version = HourEvents('request:{}:{}'.format(appid, version), now.year, now.month, now.day, now.hour)
+ events_appid_platform_version = HourEvents('request:{}:{}:{}'.format(appid, platform, version), now.year, now.month, now.day, now.hour)
self.assertEqual(len(events_appid_version), 0)
self.assertEqual(len(events_appid_platform_version), 0)
- update_live_statistics(userid, apps, platform)
+ userid_counting(userid, apps, platform)
self.assertEqual(len(events_appid_version), 1)
self.assertEqual(len(events_appid_platform_version), 1)