Exemple #1
0
 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()
Exemple #2
0
    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"

                }
            }
        }
    }
}
"""))
Exemple #3
0
    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"
                    }
                }
            }
        }
    }
}
""")
Exemple #4
0
    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"
                    }
                }
            }
        }
    }
}
""")