def test_updatecheck_positive_critical_on_other_channel(self): app = ApplicationFactory.create(id='{D0AB2EBC-931B-4013-9FEB-C9C4C2225C8C}', name='chrome') platform = PlatformFactory.create(name='win') channel = ChannelFactory.create(name='stable') channel2 = ChannelFactory.create(name='alpha') first_version = VersionFactory.create( app=app, platform=platform, channel=channel, version='13.0.782.110', file=SimpleUploadedFile('./chrome_installer_first.exe', b'_' * 23963192), file_size=23963192) first_version.file_hash = 'VXriGUVI0TNqfLlU02vBel4Q3Zo=' first_version.save() critical_version = VersionFactory.create( is_critical=True, app=app, platform=platform, channel=channel2, version='13.0.782.111', file=SimpleUploadedFile('./chrome_installer_critical.exe', b'_' * 23963192), file_size=23963192) critical_version.file_hash = 'VXriGUVI0TNqfLlU02vBel4Q3Zo=' critical_version.save() last_version = VersionFactory.create( app=app, platform=platform, channel=channel, version='13.0.782.112', file=SimpleUploadedFile('./chrome_installer.exe', b'_' * 23963192), file_size=23963192) last_version.file_hash = 'VXriGUVI0TNqfLlU02vBel4Q3Zo=' last_version.save() Action.objects.create( version=last_version, arguments='--do-not-launch-chrome', event=EVENT_DICT_CHOICES['install'], run='chrome_installer.exe' ) Action.objects.create( version=last_version, event=EVENT_DICT_CHOICES['postinstall'], other=dict( version='13.0.782.112', onsuccess='exitsilentlyonlaunchcmd', ) ) response = self.client.post(reverse('update'), fixtures.request_update_check, content_type='text/xml') self.assertEqual(response.status_code, 200) self.assertXmlDocument(response.content) self.assertXmlEquivalentOutputs(response.content, fixtures.response_update_check_positive)
def setUp(self): self.app = ApplicationFactory(name='TestApp') self.channel = ChannelFactory(name='alpha') self.stable_channel = ChannelFactory(name='stable') self.win_v1 = VersionFactory(version='10.0.0.0', app=self.app, channel=self.channel) self.win_v2 = VersionFactory(version='42.0.1.0', app=self.app, channel=self.channel) self.win_stable_v = VersionFactory(version='23.0.0.0', app=self.app, channel=self.stable_channel) self.win_disabled_v = VersionFactory(version='55.0.2.0', app=self.app, channel=self.channel, is_enabled=False) self.mac_v1 = SparkleVersionFactory(short_version='10.0.0.0', version='0.0', app=self.app, channel=self.channel) self.mac_v2 = SparkleVersionFactory(short_version='42.0.1.0', version='1.0', app=self.app, channel=self.channel) self.mac_stable_v = SparkleVersionFactory(short_version='23.0.0.0', version='0.0', app=self.app, channel=self.stable_channel) self.mac_disabled_v = SparkleVersionFactory(short_version='55.0.2.0', version='2.0', app=self.app, channel=self.channel, is_enabled=False) self.exp_res = { self.app.name: { "win": { self.channel.name: { "url": self.win_v2.file_absolute_url, "version": self.win_v2.version }, self.stable_channel.name: { "url": self.win_stable_v.file_absolute_url, "version": self.win_stable_v.version } }, "mac": { self.channel.name: { "url": self.mac_v2.file_absolute_url, "version": self.mac_v2.short_version }, self.stable_channel.name: { "url": self.mac_stable_v.file_absolute_url, "version": self.mac_stable_v.short_version } } } }
def setUp(self): self.app = ApplicationFactory() self.a_platform = PlatformFactory(name='a') self.b_platform = PlatformFactory(name='b') self.empty_platform = PlatformFactory(name='empty') self.mac_platform = PlatformFactory(name='mac') VersionFactory(platform=self.a_platform, app=self.app) VersionFactory(platform=self.b_platform, app=self.app)
def test_monitoring(self): for key in self.cache_keys: self.assertEqual(cache.get(key, 0), 0) VersionFactory.create(file_size=100) SparkleVersionFactory.create(file_size=100) Crash.objects.create(archive_size=80, minidump_size=20) Symbols.objects.create(file_size=100) Feedback.objects.create(screenshot_size=25, blackbox_size=25, attached_file_size=25, system_logs_size=25) monitoring_size() for key in self.cache_keys: self.assertEqual(cache.get(key), 100)
def test_updatecheck_positive_critical(self): app = ApplicationFactory.create( id='{D0AB2EBC-931B-4013-9FEB-C9C4C2225C8C}', name='chrome') platform = PlatformFactory.create(name='win') channel = ChannelFactory.create(name='stable') first_version = VersionFactory.create( app=app, platform=platform, channel=channel, version='13.0.782.110', file=SimpleUploadedFile('./chrome_installer_first.exe', b'_' * 23963192), file_size=23963192) first_version.file_hash = 'VXriGUVI0TNqfLlU02vBel4Q3Zo=' first_version.save() critical_version = VersionFactory.create( is_critical=True, app=app, platform=platform, channel=channel, version='13.0.782.111', file=SimpleUploadedFile('./chrome_installer_critical.exe', b'_' * 23963192), file_size=23963192) critical_version.file_hash = 'VXriGUVI0TNqfLlU02vBel4Q3Zo=' critical_version.save() last_version = VersionFactory.create(app=app, platform=platform, channel=channel, version='13.0.782.112', file=SimpleUploadedFile( './chrome_installer.exe', b'_' * 23963192), file_size=23963192) last_version.file_hash = 'VXriGUVI0TNqfLlU02vBel4Q3Zo=' last_version.save() response = self.client.post(reverse('update'), fixtures.request_update_check, content_type='text/xml') self.assertEqual(response.status_code, 200) self.assertXmlDocument(response.content) self.assertXmlEquivalentOutputs( response.content, fixtures.response_update_check_postitive_critical)
def test_get_version_partial_update(self): userid = "{%s}" % UUID(int=1) userid_beta = "{%s}" % UUID(int=40) version = VersionFactory.create(file=SimpleUploadedFile('./chrome_installer.exe', b'')) version_beta = Version.objects.create( file=SimpleUploadedFile('./chrome_installer.exe', b''), app=version.app, platform=version.platform, channel=version.channel, version='39.0.0.0', ) PartialUpdate.objects.create(version=version_beta, percent=5, start_date=datetime.now(), end_date=datetime.now(), active_users=ACTIVE_USERS_DICT_CHOICES['all']) self.assertEqual(version, get_version(version.app.pk, version.platform.name, version.channel.name, '36.0.2062.124', userid)) self.assertEqual(version_beta, get_version(version.app.pk, version.platform.name, version.channel.name, '36.0.2062.124', userid_beta))
def test_create(self): version = VersionFactory.create() data = dict(event=1, version=version.pk) response = self.client.post(reverse(self.url), data, format='json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) obj = Action.objects.get(id=response.data['id']) self.assertEqual(response.data, self.serializer(obj).data)
def test_data(self): app = ApplicationFactory.create( id='{430FD4D0-B729-4F61-AA34-91526481799D}', name='chrome') platform = PlatformFactory.create(name='win') channel = ChannelFactory.create(name='stable') obj = VersionFactory.create(app=app, platform=platform, channel=channel, version='13.0.782.112', file=SimpleUploadedFile( './chrome_installer.exe', b'_' * 23963192), file_size=23963192) obj.file_hash = 'VXriGUVI0TNqfLlU02vBel4Q3Zo=' obj.save() Data.objects.create(app=app, name=NAME_DATA_DICT_CHOICES['install'], index='verboselogging', value='app-specific values here') Data.objects.create(app=app, name=NAME_DATA_DICT_CHOICES['untrusted']) response = self.client.post(reverse('update'), fixtures.request_data, content_type='text/xml') self.assertEqual(response.status_code, 200) self.assertXmlDocument(response.content) self.assertXmlEquivalentOutputs(response.content, fixtures.response_data)
def test_filter_by_enabled(self): version = VersionFactory.create( version='37.0.2062.125', file=SimpleUploadedFile('./chrome_installer.exe', False)) version_disabled = VersionFactory.create( app=version.app, platform=version.platform, channel=version.channel, is_enabled=False, version='38.0.2062.125', file=SimpleUploadedFile('./chrome_installer2.exe', False)) self.assertEqual(Version.objects.all().count(), 2) self.assertEqual(Version.objects.filter_by_enabled().count(), 1) self.assertIn(version, Version.objects.filter_by_enabled()) self.assertNotIn(version_disabled, Version.objects.filter_by_enabled())
def test_get_attributes(self): ver = VersionFactory.create( file=SimpleUploadedFile('./chrome_installer.exe', False)) action = Action(version=ver, arguments='--do-not-launch-chrome', event=EVENT_DICT_CHOICES['install'], run='chrome_installer.exe') self.assertDictEqual( action.get_attributes(), dict( arguments='--do-not-launch-chrome', run='chrome_installer.exe', )) action = Action(version=ver, terminateallbrowsers=True, event=EVENT_DICT_CHOICES['postinstall'], other=dict(version='13.0.782.112', onsuccess='exitsilentlyonlaunchcmd')) self.assertDictEqual( action.get_attributes(), dict( terminateallbrowsers='true', version='13.0.782.112', onsuccess='exitsilentlyonlaunchcmd', ))
def test_property(self): version = VersionFactory.create(file=SimpleUploadedFile('./chrome_installer.exe', '')) self.assertEqual(version.file_absolute_url, 'http://cache.pack.google.com/edgedl/chrome/install/782.112/chrome_installer.exe') self.assertEqual(version.file_package_name, 'chrome_installer.exe') self.assertEqual(version.file_url, u'http://cache.pack.google.com/edgedl/chrome/install/782.112/')
def test_get_attributes(self): ver = VersionFactory.create(file=SimpleUploadedFile('./chrome_installer.exe', False)) action = Action( version=ver, arguments='--do-not-launch-chrome', event=EVENT_DICT_CHOICES['install'], run='chrome_installer.exe' ) self.assertDictEqual( action.get_attributes(), dict( arguments='--do-not-launch-chrome', run='chrome_installer.exe', )) action = Action( version=ver, terminateallbrowsers=True, event=EVENT_DICT_CHOICES['postinstall'], other=dict( version='13.0.782.112', onsuccess='exitsilentlyonlaunchcmd') ) self.assertDictEqual( action.get_attributes(), dict( terminateallbrowsers='true', version='13.0.782.112', onsuccess='exitsilentlyonlaunchcmd', ) )
def test_data(self): app = ApplicationFactory.create(id='{430FD4D0-B729-4F61-AA34-91526481799D}', name='chrome') platform = PlatformFactory.create(name='win') channel = ChannelFactory.create(name='stable') obj = VersionFactory.create( app=app, platform=platform, channel=channel, version='13.0.782.112', file=SimpleUploadedFile('./chrome_installer.exe', b'_' * 23963192), file_size=23963192) obj.file_hash = 'VXriGUVI0TNqfLlU02vBel4Q3Zo=' obj.save() Data.objects.create( app=app, name=NAME_DATA_DICT_CHOICES['install'], index='verboselogging', value='app-specific values here') Data.objects.create( app=app, name=NAME_DATA_DICT_CHOICES['untrusted']) response = self.client.post(reverse('update'), fixtures.request_data, content_type='text/xml') self.assertEqual(response.status_code, 200) self.assertXmlDocument(response.content) self.assertXmlEquivalentOutputs(response.content, fixtures.response_data)
def test_omaha_versions(self, mocked_get_logger): gpm['Version__limit_size'] = 1 version_size = 1000 * 1024 * 1023 versions = VersionFactory.create_batch(2, file_size=version_size) deleted_version = versions[0] self.assertEqual(Version.objects.count(), 2) extra_meta = dict(count=1, reason='manual', meta=True, log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00', model='Version', limit_duplicated=None, limit_size=1, limit_days=None, size='999.0 MB') log_extra_msg = add_extra_to_log_message('Manual cleanup', extra=extra_meta) extra = dict(Version_id=deleted_version.id, element_created=deleted_version.created.strftime( "%d. %B %Y %I:%M%p"), log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00') log_msg = add_extra_to_log_message('Manual cleanup element', extra=extra) mocked_logger = mocked_get_logger.return_value with patch('uuid.uuid4') as mocked_uuid4: mocked_uuid4.side_effect = (uuid.UUID( '36446dc3-ae7c-42ad-ae4e-6a826dcf0a%02d' % x) for x in range(100)) deferred_manual_cleanup(['omaha', 'Version'], limit_size=1) self.assertEqual(mocked_logger.info.call_count, 2) mocked_logger.info.assert_any_call(log_extra_msg) mocked_logger.info.assert_any_call(log_msg)
def test_serializer(self): today = date.today() version = VersionFactory() data = dict( is_enabled=True, exclude_new_users=True, version=version, end_date=str(date(today.year, today.month, today.day)), percent=51.0, start_date=str(date(today.year, today.month, today.day)), active_users=1, ) partial = PartialUpdateFactory(**data) self.assertDictEqual( PartialUpdateSerializer(partial).data, dict( id=partial.pk, is_enabled=partial.is_enabled, exclude_new_users=partial.exclude_new_users, version=partial.version.pk, end_date=partial.end_date, percent=partial.percent, start_date=partial.start_date, active_users=partial.active_users, ))
def test_property_s3_meta_data(self): version = VersionFactory.create( file=SimpleUploadedFile('./chrome_installer.exe', '')) self.assertEqual(version.file_package_name, 'chrome_installer.exe') self.assertEqual( version.file_url, 'http://cache.pack.google.com/edgedl/chrome/install/782.112/') self.assertEqual(version.size, 123)
def test_property_default_storage(self): version = VersionFactory.create(file=SimpleUploadedFile('./chrome_installer.exe', '')) _url = 'http://example.com/static/media/build/%s/%s/%s/37.0.2062.124/chrome_installer.exe' \ % (version.app.name, version.channel.name, version.platform.name) self.assertEqual(version.file_absolute_url, _url) self.assertEqual(version.file_package_name, 'chrome_installer.exe') _url = u'http://example.com/static/media/build/%s/%s/%s/37.0.2062.124/' \ % (version.app.name, version.channel.name, version.platform.name) self.assertEqual(version.file_url, _url)
def test_version_upload_to(self): version = VersionFactory.create(file=SimpleUploadedFile('./chrome_installer.exe', False)) self.assertEqual(version_upload_to(version, 'chrome_installer.exe'), 'build/{}/{}/{}/{}/chrome_installer.exe'.format( version.app.name, version.channel.name, version.platform.name, version.version, version.file.name, ))
def test_updatecheck_positive_critical(self): app = ApplicationFactory.create(id='{D0AB2EBC-931B-4013-9FEB-C9C4C2225C8C}', name='chrome') platform = PlatformFactory.create(name='win') channel = ChannelFactory.create(name='stable') first_version = VersionFactory.create( app=app, platform=platform, channel=channel, version='13.0.782.110', file=SimpleUploadedFile('./chrome_installer_first.exe', b'_' * 23963192), file_size=23963192) first_version.file_hash = 'VXriGUVI0TNqfLlU02vBel4Q3Zo=' first_version.save() critical_version = VersionFactory.create( is_critical=True, app=app, platform=platform, channel=channel, version='13.0.782.111', file=SimpleUploadedFile('./chrome_installer_critical.exe', b'_' * 23963192), file_size=23963192) critical_version.file_hash = 'VXriGUVI0TNqfLlU02vBel4Q3Zo=' critical_version.save() last_version = VersionFactory.create( app=app, platform=platform, channel=channel, version='13.0.782.112', file=SimpleUploadedFile('./chrome_installer.exe', b'_' * 23963192), file_size=23963192) last_version.file_hash = 'VXriGUVI0TNqfLlU02vBel4Q3Zo=' last_version.save() response = self.client.post(reverse('update'), fixtures.request_update_check, content_type='text/xml') self.assertEqual(response.status_code, 200) self.assertXmlDocument(response.content) self.assertXmlEquivalentOutputs(response.content, fixtures.response_update_check_postitive_critical)
def test_property_default_storage(self): version = VersionFactory.create( file=SimpleUploadedFile('./chrome_installer.exe', '')) _url = 'http://example.com/static/media/build/%s/%s/%s/37.0.2062.124/chrome_installer.exe' \ % (version.app.name, version.channel.name, version.platform.name) self.assertEqual(version.file_absolute_url, _url) self.assertEqual(version.file_package_name, 'chrome_installer.exe') _url = u'http://example.com/static/media/build/%s/%s/%s/37.0.2062.124/' \ % (version.app.name, version.channel.name, version.platform.name) self.assertEqual(version.file_url, _url)
def test_version_upload_to(self): version = VersionFactory.create( file=SimpleUploadedFile('./chrome_installer.exe', False)) self.assertEqual( version_upload_to(version, 'chrome_installer.exe'), 'build/{}/{}/{}/{}/chrome_installer.exe'.format( version.app.name, version.channel.name, version.platform.name, version.version, version.file.name, ))
def test_userid_counting(self): now = datetime.utcnow() userid = '{D0BBD725-742D-44ae-8D46-0231E881D58E}' user_id = get_id(userid) appid1 = '{430FD4D0-B729-4F61-AA34-91526481799D}' appid2 = '{D0AB2EBC-931B-4013-9FEB-C9C4C2225C8C}' request_events = DayEvents('request', now.year, now.month, now.day) app1_events = DayEvents('request:%s' % appid1, now.year, now.month, now.day) app2_events = DayEvents('request:%s' % appid2, now.year, now.month, now.day) self.assertEqual(len(request_events), 0) self.assertEqual(len(app1_events), 0) self.assertEqual(len(app2_events), 0) app = ApplicationFactory.create(id='{D0AB2EBC-931B-4013-9FEB-C9C4C2225C8C}', name='chrome') platform = PlatformFactory.create(name='win') channel = ChannelFactory.create(name='stable') obj = VersionFactory.create( app=app, platform=platform, channel=channel, version='13.0.782.112', file=SimpleUploadedFile('./chrome_installer.exe', b'_' * 23963192)) obj.file_hash = 'VXriGUVI0TNqfLlU02vBel4Q3Zo=' obj.save() Action.objects.create( version=obj, arguments='--do-not-launch-chrome', event=EVENT_DICT_CHOICES['install'], run='chrome_installer.exe' ) Action.objects.create( version=obj, event=EVENT_DICT_CHOICES['postinstall'], other=dict( version='13.0.782.112', onsuccess='exitsilentlyonlaunchcmd', ) ) self.client.post(reverse('update'), fixtures.request_update_check, content_type='text/xml') self.assertEqual(len(request_events), 1) self.assertEqual(len(app1_events), 1) self.assertEqual(len(app2_events), 1) self.assertTrue(user_id in request_events) self.assertTrue(user_id in app1_events) self.assertTrue(user_id in app2_events)
def test_userid_counting(self): now = datetime.utcnow() userid = '{D0BBD725-742D-44ae-8D46-0231E881D58E}' user_id = get_id(userid) appid1 = '{430FD4D0-B729-4F61-AA34-91526481799D}' appid2 = '{D0AB2EBC-931B-4013-9FEB-C9C4C2225C8C}' request_events = DayEvents('request', now.year, now.month, now.day) app1_events = DayEvents('request:%s' % appid1, now.year, now.month, now.day) app2_events = DayEvents('request:%s' % appid2, now.year, now.month, now.day) self.assertEqual(len(request_events), 0) self.assertEqual(len(app1_events), 0) self.assertEqual(len(app2_events), 0) app = ApplicationFactory.create( id='{D0AB2EBC-931B-4013-9FEB-C9C4C2225C8C}', name='chrome') platform = PlatformFactory.create(name='win') channel = ChannelFactory.create(name='stable') obj = VersionFactory.create(app=app, platform=platform, channel=channel, version='13.0.782.112', file=SimpleUploadedFile( './chrome_installer.exe', b'_' * 23963192)) obj.file_hash = 'VXriGUVI0TNqfLlU02vBel4Q3Zo=' obj.save() Action.objects.create(version=obj, arguments='--do-not-launch-chrome', event=EVENT_DICT_CHOICES['install'], run='chrome_installer.exe') Action.objects.create(version=obj, event=EVENT_DICT_CHOICES['postinstall'], other=dict( version='13.0.782.112', onsuccess='exitsilentlyonlaunchcmd', )) self.client.post(reverse('update'), fixtures.request_update_check, content_type='text/xml') self.assertEqual(len(request_events), 1) self.assertEqual(len(app1_events), 1) self.assertEqual(len(app2_events), 1) self.assertTrue(user_id in request_events) self.assertTrue(user_id in app1_events) self.assertTrue(user_id in app2_events)
def test_update(self): version = VersionFactory.create() data = dict(event=1, version=version.pk) response = self.client.post(reverse(self.url), data, format='json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) obj_id = response.data['id'] obj = Action.objects.get(id=obj_id) self.assertEqual(response.data, self.serializer(obj).data) url = reverse(self.url_detail, kwargs=dict(pk=obj_id)) response = self.client.patch(url, dict(event=2)) self.assertEqual(response.status_code, status.HTTP_200_OK) obj = Action.objects.get(id=obj_id) self.assertEqual(obj.event, 2)
def test_get_version(self): userid = '{D0BBD725-742D-44ae-8D46-0231E881D58E}' version = VersionFactory.create(file=SimpleUploadedFile('./chrome_installer.exe', b'')) self.assertEqual(version, get_version(version.app.pk, version.platform.name, version.channel.name, '36.0.2062.124', userid)) self.assertEqual(version, get_version(version.app.pk, version.platform.name, version.channel.name, '', userid))
def test_create(self): version = VersionFactory.create() data = dict( is_enabled=True, exclude_new_users=True, version=version.pk, end_date=str(date.today()), percent=51.0, start_date=str(date.today()), active_users=1, ) response = self.client.post(reverse(self.url), data, format='json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) obj = PartialUpdate.objects.get(id=response.data['id']) self.assertEqual(response.data, self.serializer(obj).data)
def test_auto_fill_file_size(self): version = VersionFactory.create(file=SimpleUploadedFile('./chrome_installer.exe', b' ' * 10)) data = dict( app=version.app.id, platform=version.platform.id, channel=version.channel.id, version='4.3.2.1', release_notes=version.release_notes, file=version.file, file_hash=version.file_hash, ) new_version = VersionSerializer(data=data) self.assertTrue(new_version.is_valid()) new_version_instance = new_version.save() self.assertEqual(new_version_instance.file_size, 10)
def test_serializer(self): version = VersionFactory.create(file=SimpleUploadedFile('./chrome_installer.exe', False)) self.assertDictEqual(VersionSerializer(version).data, dict( id=version.id, is_enabled=version.is_enabled, app=version.app.id, platform=version.platform.id, channel=version.channel.id, version=str(version.version), release_notes=version.release_notes, file=version.file.url, file_hash=version.file_hash, file_size=version.file_size, created=version.created.strftime('%Y-%m-%dT%H:%M:%S.%fZ'), modified=version.modified.strftime('%Y-%m-%dT%H:%M:%S.%fZ'), ))
def test_auto_fill_file_size(self): version = VersionFactory.create( file=SimpleUploadedFile('./chrome_installer.exe', b' ' * 10)) data = dict( app=version.app.id, platform=version.platform.id, channel=version.channel.id, version='4.3.2.1', release_notes=version.release_notes, file=version.file, file_hash=version.file_hash, ) new_version = VersionSerializer(data=data) self.assertTrue(new_version.is_valid()) new_version_instance = new_version.save() self.assertEqual(new_version_instance.file_size, 10)
def test_get_app_version_channel(self): userid = '{D0BBD725-742D-44ae-8D46-0231E881D58E}' channel_beta = Channel.objects.create(name="beta") version = VersionFactory.create(file=SimpleUploadedFile('./chrome_installer.exe', b'')) version_beta = Version.objects.create( file=SimpleUploadedFile('./chrome_installer.exe', b''), app=version.app, platform=version.platform, channel=channel_beta, version='39.0.0.0', ) self.assertEqual(version_beta, get_version(version.app.pk, version.platform.name, channel_beta.name, '', userid))
def test_serializer(self): version = VersionFactory.create( file=SimpleUploadedFile('./chrome_installer.exe', False)) self.assertDictEqual( VersionSerializer(version).data, dict( id=version.id, is_enabled=version.is_enabled, app=version.app.id, platform=version.platform.id, channel=version.channel.id, version=str(version.version), release_notes=version.release_notes, file=version.file.url, file_hash=version.file_hash, file_size=version.file_size, created=version.created.strftime('%Y-%m-%dT%H:%M:%S.%fZ'), modified=version.modified.strftime('%Y-%m-%dT%H:%M:%S.%fZ'), ))
def test_get_app_version_active_users(self): userid = "{%s}" % UUID(int=1) userid_beta = "{%s}" % UUID(int=40) userid_beta_not_active = "{%s}" % UUID(int=60) version = VersionFactory.create(file=SimpleUploadedFile('./chrome_installer.exe', b'')) version_beta = Version.objects.create( file=SimpleUploadedFile('./chrome_installer.exe', b''), app=version.app, platform=version.platform, channel=version.channel, version='39.0.0.0', ) id = get_id(userid_beta) mark_event('request', id) PartialUpdate.objects.create(version=version_beta, percent=5, start_date=datetime.now(), end_date=datetime.now()) self.assertEqual(version, get_version(version.app.pk, version.platform.name, version.channel.name, '36.0.2062.124', userid)) self.assertEqual(version_beta, get_version(version.app.pk, version.platform.name, version.channel.name, '36.0.2062.124', userid_beta)) self.assertEqual(version, get_version(version.app.pk, version.platform.name, version.channel.name, '36.0.2062.124', userid_beta_not_active))
def test_omaha_versions(self, mocked_get_logger): gpm['Version__limit_size'] = 1 version_size = 1000*1024*1023 versions = VersionFactory.create_batch(2, file_size=version_size) deleted_version = versions[0] self.assertEqual(Version.objects.count(), 2) extra_meta = dict(count=1, reason='manual', meta=True, log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00', model='Version', limit_duplicated=None, limit_size=1, limit_days=None, size='999.0 MB') log_extra_msg = add_extra_to_log_message('Manual cleanup', extra=extra_meta) extra = dict(Version_id=deleted_version.id, element_created=deleted_version.created.strftime("%d. %B %Y %I:%M%p"), log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00') log_msg = add_extra_to_log_message('Manual cleanup element', extra=extra) mocked_logger = mocked_get_logger.return_value with patch('uuid.uuid4') as mocked_uuid4: mocked_uuid4.side_effect = (uuid.UUID('36446dc3-ae7c-42ad-ae4e-6a826dcf0a%02d' % x) for x in range(100)) deferred_manual_cleanup(['omaha', 'Version'], limit_size=1) self.assertEqual(mocked_logger.info.call_count, 2) mocked_logger.info.assert_any_call(log_extra_msg) mocked_logger.info.assert_any_call(log_msg)
def test_pre_save_callback(self): version = VersionFactory.create(file=SimpleUploadedFile('./chrome_installer.exe', b'')) self.assertEqual(version.file.size, 0) self.assertEqual(version.file_hash, '2jmj7l5rSw0yVb/vlWAYkK/YBwk=')
def test_factory(self): version = VersionFactory.create(file=SimpleUploadedFile('./chrome_installer.exe', False)) self.assertTrue(Version.objects.get(id=version.id))
def test_get_size(self): file_size = 42 VersionFactory.create_batch(10, file_size=file_size) size = Version.objects.get_size() self.assertEqual(size, file_size*10)
def test_pre_save_callbac(self): version = VersionFactory.create( file=SimpleUploadedFile('./chrome_installer.exe', b'')) self.assertEqual(version.file.size, 0) self.assertEqual(version.file_hash, '2jmj7l5rSw0yVb/vlWAYkK/YBwk=')
def test_factory(self): version = VersionFactory.create( file=SimpleUploadedFile('./chrome_installer.exe', False)) self.assertTrue(Version.objects.get(id=version.id))
def test_get_size(self): file_size = 42 VersionFactory.create_batch(10, file_size=file_size) size = Version.objects.get_size() self.assertEqual(size, file_size * 10)