Пример #1
0
 def getResolvedPlatform(self, vendor, platform):
     if platform in self['vendors'][vendor]['platforms']:
         return self['vendors'][vendor]['platforms'][platform].get(
             'alias', platform)
     if "default" in self['vendors'][vendor]['platforms']:
         return "default"
     raise BadDataError("No platform '%s' or default in vendor '%s'",
                        platform, vendor)
Пример #2
0
 def testSentryBadDataError(self):
     with mock.patch(
             "auslib.web.public.client.getQueryFromURL") as m, mock.patch(
                 "auslib.web.public.base.sentry") as sentry:
         m.side_effect = BadDataError("exterminate!")
         ret = self.client.get("/update/4/b/1.0/1/p/l/a/a/a/a/1/update.xml")
         self.assertFalse(sentry.captureException.called)
         self.assertEqual(ret.status_code, 400, ret.data)
         self.assertEqual(ret.mimetype, "text/plain")
Пример #3
0
def MozillaVersion(version):
    try:
        if version.count(".") in (1, 2):
            if int(version[0]) > 4:
                return PostModernMozillaVersion(version)
            else:
                return ModernMozillaVersion(version)
        else:
            return AncientMozillaVersion(version)
    except ValueError:
        raise BadDataError("Version number %s is invalid." % version)
Пример #4
0
def MozillaVersion(version):
    try:
        return ModernMozillaVersion(version)
    except ValueError:
        pass
    try:
        if version.count('.') == 3:
            return AncientMozillaVersion(version)
    except ValueError:
        pass
    raise BadDataError("Version number %s is invalid." % version)
Пример #5
0
 def testEscapedOutputOn400(self):
     with mock.patch("auslib.web.public.client.getQueryFromURL") as m:
         m.side_effect = BadDataError(
             'Version number 50.1.0zibj5<img src%3da onerror%3dalert(document.domain)> is invalid.'
         )
         ret = self.client.get("/update/4/b/1.0/1/p/l/a/a/a/a/1/update.xml")
         self.assertEqual(ret.status_code, 400, ret.data)
         self.assertEqual(ret.mimetype, "text/plain")
         self.assertEqual(
             "Version number 50.1.0zibj5&lt;img src%3da onerror%3dalert(document.domain)&gt; is invalid.",
             ret.data)
Пример #6
0
 def getResolvedPlatform(self, addon, platform):
     platforms = self.get("addons", {}).get(addon, {}).get("platforms", {})
     if platform in platforms:
         return self.get("addons",
                         {}).get(addon,
                                 {}).get("platforms",
                                         {}).get(platform,
                                                 {}).get("alias", platform)
     if "default" in platforms:
         return "default"
     raise BadDataError("No platform '%s' or default in addon '%s'",
                        platform, addon)
Пример #7
0
 def testXContentTypeOptionsIsSetFor400(self):
     with mock.patch('auslib.web.public.client.get_update_blob') as m:
         m.side_effect = BadDataError('I break!')
         ret = self.client.get('/update/4/b/1.0/1/p/l/a/a/a/a/1/update.xml')
         self.assertEqual(ret.headers.get("X-Content-Type-Options"), "nosniff")
Пример #8
0
 def testStrictTransportSecurityIsSetFor400(self):
     with mock.patch('auslib.web.public.client.get_update_blob') as m:
         m.side_effect = BadDataError('I break!')
         ret = self.client.get('/update/4/b/1.0/1/p/l/a/a/a/a/1/update.xml')
         self.assertEqual(ret.headers.get("Strict-Transport-Security"), "max-age=31536000;")
Пример #9
0
 def testContentSecurityPolicyIsSetFor400(self):
     with mock.patch('auslib.web.public.client.get_update_blob') as m:
         m.side_effect = BadDataError('I break!')
         ret = self.client.get('/update/4/b/1.0/1/p/l/a/a/a/a/1/update.xml')
         self.assertEqual(ret.headers.get("Content-Security-Policy"), "default-src 'none'; frame-ancestors 'none'")
Пример #10
0
 def getPlatformData(self, platform):
     platform = self.getResolvedPlatform(platform)
     try:
         return self['platforms'][platform]
     except KeyError:
         raise BadDataError("Can't find platform '%s'", platform)
Пример #11
0
 def getResolvedPlatform(self, platform):
     try:
         return self['platforms'][platform].get('alias', platform)
     except KeyError:
         raise BadDataError("Can't find platform '%s'", platform)
Пример #12
0
 def getPlatformData(self, vendor, platform):
     platform = self.getResolvedPlatform(vendor, platform)
     try:
         return self['vendors'][vendor]['platforms'][platform]
     except KeyError:
         raise BadDataError("No platform '%s' in vendor '%s'", platform, vendor)
Пример #13
0
 def testSentryBadDataError(self):
     with mock.patch("auslib.web.views.client.ClientRequestView.get") as m:
         m.side_effect = BadDataError("exterminate!")
         with mock.patch("auslib.web.base.sentry") as sentry:
             self.client.get("/update/4/b/1.0/1/p/l/a/a/a/a/1/update.xml")
             self.assertFalse(sentry.captureException.called)
Пример #14
0
 def getResolvedPlatform(self, vendor, platform):
     if platform in self["vendors"][vendor]["platforms"]:
         return self["vendors"][vendor]["platforms"][platform].get("alias", platform)
     if "default" in self["vendors"][vendor]["platforms"]:
         return "default"
     raise BadDataError("No platform '%s' or default in vendor '%s'", platform, vendor)
Пример #15
0
 def getLocaleData(self, platform, locale):
     platformData = self.getPlatformData(platform)
     try:
         return platformData["locales"][locale]
     except KeyError:
         raise BadDataError("Can't find locale '%s' in '%s'", locale, platform)