diff options
Diffstat (limited to 'omaha_server/omaha/tests')
-rw-r--r-- | omaha_server/omaha/tests/test_api.py | 35 | ||||
-rw-r--r-- | omaha_server/omaha/tests/test_statistics.py | 83 |
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) |