def setUp(self): app.config['DEBUG'] = True app.config['WHITELISTED_DOMAINS'] = ('a.com', ) dbo.setDb('sqlite:///:memory:') dbo.create() self.client = app.test_client() self.view = ClientRequestView()
def setUp(self): self.version_fd, self.version_file = mkstemp() app.config['DEBUG'] = True app.config['SPECIAL_FORCE_HOSTS'] = ('http://a.com', ) app.config['WHITELISTED_DOMAINS'] = { 'a.com': ('b', 'c', 'e', 'b2g', 'response-a', 'response-b', 's', 'responseblob-a', 'responseblob-b', 'q', 'fallback') } app.config["VERSION_FILE"] = self.version_file with open(self.version_file, "w+") as f: f.write(""" { "source":"https://github.com/mozilla/balrog", "version":"1.0", "commit":"abcdef123456" } """) dbo.setDb('sqlite:///:memory:') dbo.create() dbo.setDomainWhitelist({'a.com': ('b', 'c', 'e', 'b2g')}) self.client = app.test_client() self.view = ClientRequestView() dbo.rules.t.insert().execute(priority=90, backgroundRate=100, mapping='b', update_type='minor', product='b', data_version=1) dbo.releases.t.insert().execute(name='b', product='b', data_version=1, data=createBlob(""" { "name": "b", "schema_version": 1, "appv": "1.0", "extv": "1.0", "hashFunction": "sha512", "platforms": { "p": { "buildID": "2", "locales": { "l": { "complete": { "filesize": "3", "from": "*", "hashValue": "4", "fileUrl": "http://a.com/z" } }, "xh": { "complete": { "filesize": "5", "from": "*", "hashValue": "6", "fileUrl": "http://a.com/x" } } } } } } """)) dbo.rules.t.insert().execute(priority=90, backgroundRate=100, mapping='s', update_type='minor', product='s', systemCapabilities="SSE", data_version=1) dbo.releases.t.insert().execute(name='s', product='s', data_version=1, data=createBlob(""" { "name": "s", "schema_version": 1, "appv": "1.0", "extv": "1.0", "hashFunction": "sha512", "platforms": { "p": { "buildID": "5", "locales": { "l": { "complete": { "filesize": "5", "from": "*", "hashValue": "5", "fileUrl": "http://a.com/s" } } } } } } """)) dbo.rules.t.insert().execute(priority=90, backgroundRate=0, mapping='q', update_type='minor', product='q', fallbackMapping='fallback', data_version=1) dbo.releases.t.insert().execute(name='q', product='q', data_version=1, data=createBlob(""" { "name": "q", "schema_version": 1, "appv": "1.0", "extv": "1.0", "hashFunction": "sha512", "platforms": { "p": { "buildID": "5", "locales": { "l": { "complete": { "filesize": "5", "from": "*", "hashValue": "5", "fileUrl": "http://a.com/q" } } } } } } """)) dbo.releases.t.insert().execute(name='fallback', product='q', data_version=1, data=createBlob(""" { "name": "fallback", "schema_version": 1, "appv": "1.0", "extv": "1.0", "hashFunction": "sha512", "platforms": { "p": { "buildID": "5", "locales": { "l": { "complete": { "filesize": "5", "from": "*", "hashValue": "5", "fileUrl": "http://a.com/fallback" } } } } } } """)) dbo.rules.t.insert().execute(priority=90, backgroundRate=100, mapping='c', update_type='minor', product='c', distribution='default', data_version=1) dbo.releases.t.insert().execute(name='c', product='c', data_version=1, data=createBlob(""" { "name": "c", "schema_version": 1, "appv": "10.0", "extv": "10.0", "hashFunction": "sha512", "platforms": { "p": { "buildID": "11", "locales": { "l": { "complete": { "filesize": "12", "from": "*", "hashValue": "13", "fileUrl": "http://a.com/y" } } } } } } """)) dbo.rules.t.insert().execute(priority=90, backgroundRate=100, mapping='d', update_type='minor', product='d', data_version=1) dbo.releases.t.insert().execute(name='d', product='d', data_version=1, data=createBlob(""" { "name": "d", "schema_version": 1, "appv": "20.0", "extv": "20.0", "hashFunction": "sha512", "platforms": { "p": { "buildID": "21", "locales": { "l": { "complete": { "filesize": 22, "from": "*", "hashValue": "23", "fileUrl": "http://evil.com/y" } } } } } } """)) dbo.rules.t.insert().execute(priority=90, backgroundRate=0, mapping='e', update_type='minor', product='e', data_version=1) dbo.releases.t.insert().execute(name='e', product='e', data_version=1, data=createBlob(""" { "name": "e", "schema_version": 1, "hashFunction": "sha512", "platforms": { "p": { "buildID": "25", "locales": { "l": { "complete": { "filesize": 22, "from": "*", "hashValue": "23", "fileUrl": "http://a.com/y" } } } } } } """)) dbo.rules.t.insert().execute(priority=100, backgroundRate=100, mapping='foxfood-whitelisted', update_type='minor', product='b2g', whitelist='b2g-whitelist', data_version=1) dbo.rules.t.insert().execute(priority=90, backgroundRate=100, mapping='foxfood-whitelisted', update_type='minor', product='b2g', channel="foxfood", whitelist='b2g-whitelist', data_version=1) dbo.rules.t.insert().execute(priority=80, backgroundRate=100, mapping='foxfood-fallback', update_type='minor', product='b2g', data_version=1) dbo.releases.t.insert().execute(name='b2g-whitelist', product='b2g', data_version=1, data=createBlob(""" { "name": "b2g-whitelist", "schema_version": 3000, "whitelist": [ { "imei": "000000000000000" }, { "imei": "000000000000001" }, { "imei": "000000000000002" } ] } """)) dbo.releases.t.insert().execute(name='foxfood-whitelisted', product='b2g', data_version=1, data=createBlob(""" { "name": "foxfood-whitelisted", "schema_version": 1, "extv": "2.5", "hashFunction": "sha512", "platforms": { "p": { "buildID": "25", "locales": { "l": { "complete": { "filesize": 22, "from": "*", "hashValue": "23", "fileUrl": "http://a.com/secrets" } } } } } } """)) dbo.releases.t.insert().execute(name='foxfood-fallback', product='b2g', data_version=1, data=createBlob(""" { "name": "foxfood-fallback", "schema_version": 1, "extv": "2.5", "hashFunction": "sha512", "platforms": { "p": { "buildID": "25", "locales": { "l": { "complete": { "filesize": 22, "from": "*", "hashValue": "23", "fileUrl": "http://a.com/public" } } } } } } """)) dbo.rules.t.insert().execute(priority=200, backgroundRate=100, mapping='gmp', update_type='minor', product='gmp', data_version=1) dbo.rules.t.insert().execute(priority=200, backgroundRate=100, mapping='gmp-with-one-response-product', update_type='minor', product='gmp-with-one-response-product', data_version=1) dbo.rules.t.insert().execute(priority=190, backgroundRate=100, mapping='response-a', update_type='minor', product='response-a', data_version=1) dbo.rules.t.insert().execute(priority=180, backgroundRate=100, mapping='response-b', update_type='minor', product='response-b', data_version=1) dbo.releases.t.insert().execute( name='gmp-with-one-response-product', product='gmp-with-one-response-product', data_version=1, data=createBlob(""" { "name": "superblob", "schema_version": 4000, "products": ["response-a"] } """)) dbo.releases.t.insert().execute(name='gmp', product='gmp', data_version=1, data=createBlob(""" { "name": "superblob", "schema_version": 4000, "products": ["response-a", "response-b"] } """)) dbo.releases.t.insert().execute(name='response-a', product='response-a', data_version=1, data=createBlob(""" { "name": "response-a", "schema_version": 1, "extv": "2.5", "hashFunction": "sha512", "platforms": { "p": { "buildID": "25", "locales": { "l": { "complete": { "filesize": 22, "from": "*", "hashValue": "23", "fileUrl": "http://a.com/public" } } } }, "q": { "buildID": "25", "locales": { "l": { "complete": { "filesize": 22, "from": "*", "hashValue": "23", "fileUrl": "http://a.com/public-q" } } } } } } """)) dbo.releases.t.insert().execute(name='response-b', product='response-b', data_version=1, data=createBlob(""" { "name": "response-b", "schema_version": 1, "extv": "2.5", "hashFunction": "sha512", "platforms": { "p": { "buildID": "25", "locales": { "l": { "complete": { "filesize": 27777777, "from": "*", "hashValue": "23", "fileUrl": "http://a.com/b" } } } } } } """)) dbo.rules.t.insert().execute(priority=180, backgroundRate=100, mapping='systemaddons-uninstall', update_type='minor', product='systemaddons-uninstall', data_version=1) dbo.releases.t.insert().execute(name='systemaddons-uninstall', product='systemaddons-uninstall', data_version=1, data=createBlob(""" { "name": "fake", "schema_version": 5000, "hashFunction": "SHA512", "uninstall": true } """)) dbo.rules.t.insert().execute(priority=180, backgroundRate=100, mapping='systemaddons', update_type='minor', product='systemaddons', data_version=1) dbo.releases.t.insert().execute(name='systemaddons', product='systemaddons', data_version=1, data=createBlob(""" { "name": "fake", "schema_version": 5000, "hashFunction": "SHA512", "uninstall": false, "addons": { "c": { "version": "1", "platforms": { "p": { "filesize": 2, "hashValue": "3", "fileUrl": "http://a.com/blah" } } } } } """)) dbo.rules.t.insert().execute( priority=1000, backgroundRate=0, mapping='product_that_should_not_be_updated-1.1', update_type='minor', product='product_that_should_not_be_updated', data_version=1) dbo.releases.t.insert().execute( name='product_that_should_not_be_updated-1.1', product='product_that_should_not_be_updated', data_version=1, data=createBlob(""" { "name": "product_that_should_not_be_updated-1.1", "schema_version": 1, "appv": "1.1", "extv": "1.1", "hashFunction": "sha512", "platforms": { "p": { "buildID": "2", "locales": { "l": { "complete": { "filesize": "3", "from": "*", "hashValue": "4", "fileUrl": "http://a.com/z" } } } } } } """)) dbo.rules.t.insert().execute( priority=90, backgroundRate=100, mapping='product_that_should_not_be_updated-2.0', update_type='minor', product='product_that_should_not_be_updated', data_version=1) dbo.releases.t.insert().execute( name='product_that_should_not_be_updated-2.0', product='product_that_should_not_be_updated', data_version=1, data=createBlob(""" { "name": "product_that_should_not_be_updated-2.0", "schema_version": 1, "appv": "2.0", "extv": "2.0", "hashFunction": "sha512", "platforms": { "p": { "buildID": "2", "locales": { "l": { "complete": { "filesize": "3", "from": "*", "hashValue": "4", "fileUrl": "http://a.com/z" } } } } } } """)) dbo.rules.t.insert().execute( priority=200, backgroundRate=100, mapping='superblobaddon-with-multiple-response-blob', update_type='minor', product='superblobaddon-with-multiple-response-blob', data_version=1) dbo.rules.t.insert().execute( priority=200, backgroundRate=100, mapping='superblobaddon-with-one-response-blob', update_type='minor', product='superblobaddon-with-one-response-blob', data_version=1) dbo.releases.t.insert().execute( name='superblobaddon-with-one-response-blob', product='superblobaddon-with-one-response-blob', data_version=1, data=createBlob(""" { "name": "superblobaddon", "schema_version": 4000, "revision": 123, "blobs": ["responseblob-a"] } """)) dbo.releases.t.insert().execute( name='superblobaddon-with-multiple-response-blob', product='superblobaddon-with-multiple-response-blob', data_version=1, data=createBlob(""" { "name": "superblobaddon", "schema_version": 4000, "revision": 124, "blobs": ["responseblob-a", "responseblob-b"] } """)) dbo.releases.t.insert().execute(name='responseblob-a', product='responseblob-a', data_version=1, data=createBlob(""" { "name": "responseblob-a", "schema_version": 5000, "hashFunction": "SHA512", "addons": { "c": { "version": "1", "platforms": { "p": { "filesize": 2, "hashValue": "3", "fileUrl": "http://a.com/e" }, "q": { "filesize": 4, "hashValue": "5", "fileUrl": "http://a.com/e" }, "q2": { "alias": "q" } } }, "d": { "version": "5", "platforms": { "q": { "filesize": 10, "hashValue": "11", "fileUrl": "http://a.com/c" }, "default": { "filesize": 20, "hashValue": "50", "fileUrl": "http://a.com/c" } } } } } """)) dbo.releases.t.insert().execute(name='responseblob-b', product='responseblob-b', data_version=1, data=createBlob(""" { "name": "responseblob-b", "schema_version": 5000, "hashFunction": "sha512", "uninstall": false, "addons": { "b": { "version": "1", "platforms": { "p": { "filesize": 27, "hashValue": "23", "fileUrl": "http://a.com/b" } } } } } """))
def setUp(self): self.cef_fd, self.cef_file = mkstemp() app.config['DEBUG'] = True app.config['SPECIAL_FORCE_HOSTS'] = ('http://a.com', ) app.config['WHITELISTED_DOMAINS'] = ('a.com', 'boring.com') dbo.setDb('sqlite:///:memory:') dbo.create() dbo.setDomainWhitelist(('a.com', 'boring.com')) self.client = app.test_client() self.view = ClientRequestView() auslib.log.cef_config = auslib.log.get_cef_config(self.cef_file) dbo.rules.t.insert().execute(backgroundRate=100, mapping='b', update_type='minor', product='b', data_version=1) dbo.releases.t.insert().execute(name='b', product='b', version='1.0', data_version=1, data=""" { "name": "b", "schema_version": 1, "appv": "1.0", "extv": "1.0", "hashFunction": "sha512", "platforms": { "p": { "buildID": "2", "locales": { "l": { "complete": { "filesize": "3", "from": "*", "hashValue": "4", "fileUrl": "http://a.com/z" } }, "xh": { "complete": { "filesize": "5", "from": "*", "hashValue": "6", "fileUrl": "http://a.com/x" } } } } } } """) dbo.rules.t.insert().execute(backgroundRate=100, mapping='c', update_type='minor', product='c', distribution='default', data_version=1) dbo.releases.t.insert().execute(name='c', product='c', version='10.0', data_version=1, data=""" { "name": "c", "schema_version": 1, "appv": "10.0", "extv": "10.0", "hashFunction": "sha512", "platforms": { "p": { "buildID": "11", "locales": { "l": { "complete": { "filesize": "12", "from": "*", "hashValue": "13", "fileUrl": "http://a.com/y" } } } } } } """) dbo.rules.t.insert().execute(backgroundRate=100, mapping='d', update_type='minor', product='d', data_version=1) dbo.releases.t.insert().execute(name='d', product='d', version='20.0', data_version=1, data=""" { "name": "d", "schema_version": 1, "appv": "20.0", "extv": "20.0", "hashFunction": "sha512", "platforms": { "p": { "buildID": "21", "locales": { "l": { "complete": { "filesize": 22, "from": "*", "hashValue": "23", "fileUrl": "http://evil.com/y" } } } } } } """) dbo.rules.t.insert().execute(backgroundRate=100, mapping='e', update_type='minor', product='e', data_version=1) dbo.releases.t.insert().execute(name='e', product='e', version='22.0', data_version=1, data=""" { "name": "e", "schema_version": 1, "hashFunction": "sha512", "platforms": { "p": { "buildID": "25", "locales": { "l": { "complete": { "filesize": 22, "from": "*", "hashValue": "23", "fileUrl": "http://a.com/y" } } } } } } """)
def setUp(self): self.cef_fd, self.cef_file = mkstemp() self.version_fd, self.version_file = mkstemp() app.config['DEBUG'] = True app.config['SPECIAL_FORCE_HOSTS'] = ('http://a.com', ) app.config['WHITELISTED_DOMAINS'] = ('a.com', 'boring.com') app.config["VERSION_FILE"] = self.version_file with open(self.version_file, "w+") as f: f.write(""" { "source":"https://github.com/mozilla/balrog", "version":"1.0", "commit":"abcdef123456" } """) dbo.setDb('sqlite:///:memory:') dbo.create() dbo.setDomainWhitelist(('a.com', 'boring.com')) self.client = app.test_client() self.view = ClientRequestView() auslib.log.cef_config = auslib.log.get_cef_config(self.cef_file) dbo.rules.t.insert().execute(backgroundRate=100, mapping='b', update_type='minor', product='b', data_version=1) dbo.releases.t.insert().execute(name='b', product='b', data_version=1, data=""" { "name": "b", "schema_version": 1, "appv": "1.0", "extv": "1.0", "hashFunction": "sha512", "platforms": { "p": { "buildID": "2", "locales": { "l": { "complete": { "filesize": "3", "from": "*", "hashValue": "4", "fileUrl": "http://a.com/z" } }, "xh": { "complete": { "filesize": "5", "from": "*", "hashValue": "6", "fileUrl": "http://a.com/x" } } } } } } """) dbo.rules.t.insert().execute(backgroundRate=100, mapping='c', update_type='minor', product='c', distribution='default', data_version=1) dbo.releases.t.insert().execute(name='c', product='c', data_version=1, data=""" { "name": "c", "schema_version": 1, "appv": "10.0", "extv": "10.0", "hashFunction": "sha512", "platforms": { "p": { "buildID": "11", "locales": { "l": { "complete": { "filesize": "12", "from": "*", "hashValue": "13", "fileUrl": "http://a.com/y" } } } } } } """) dbo.rules.t.insert().execute(backgroundRate=100, mapping='d', update_type='minor', product='d', data_version=1) dbo.releases.t.insert().execute(name='d', product='d', data_version=1, data=""" { "name": "d", "schema_version": 1, "appv": "20.0", "extv": "20.0", "hashFunction": "sha512", "platforms": { "p": { "buildID": "21", "locales": { "l": { "complete": { "filesize": 22, "from": "*", "hashValue": "23", "fileUrl": "http://evil.com/y" } } } } } } """) dbo.rules.t.insert().execute(backgroundRate=100, mapping='e', update_type='minor', product='e', data_version=1) dbo.releases.t.insert().execute(name='e', product='e', data_version=1, data=""" { "name": "e", "schema_version": 1, "hashFunction": "sha512", "platforms": { "p": { "buildID": "25", "locales": { "l": { "complete": { "filesize": 22, "from": "*", "hashValue": "23", "fileUrl": "http://a.com/y" } } } } } } """) dbo.rules.t.insert().execute(priority=100, backgroundRate=100, mapping='foxfood-whitelisted', update_type='minor', product='b2g', whitelist='b2g-whitelist', data_version=1) dbo.rules.t.insert().execute(priority=90, backgroundRate=100, mapping='foxfood-whitelisted', update_type='minor', product='b2g', channel="foxfood", whitelist='b2g-whitelist', data_version=1) dbo.rules.t.insert().execute(priority=80, backgroundRate=100, mapping='foxfood-fallback', update_type='minor', product='b2g', data_version=1) dbo.releases.t.insert().execute(name='b2g-whitelist', product='b2g', data_version=1, data=""" { "name": "b2g-whitelist", "schema_version": 3000, "whitelist": [ { "imei": "000000000000000" }, { "imei": "000000000000001" }, { "imei": "000000000000002" } ] } """) dbo.releases.t.insert().execute(name='foxfood-whitelisted', product='b2g', data_version=1, data=""" { "name": "foxfood-whitelisted", "schema_version": 1, "extv": "2.5", "hashFunction": "sha512", "platforms": { "p": { "buildID": "25", "locales": { "l": { "complete": { "filesize": 22, "from": "*", "hashValue": "23", "fileUrl": "http://a.com/secrets" } } } } } } """) dbo.releases.t.insert().execute(name='foxfood-fallback', product='b2g', data_version=1, data=""" { "name": "foxfood-fallback", "schema_version": 1, "extv": "2.5", "hashFunction": "sha512", "platforms": { "p": { "buildID": "25", "locales": { "l": { "complete": { "filesize": 22, "from": "*", "hashValue": "23", "fileUrl": "http://a.com/public" } } } } } } """)