diff --git a/pyproject.toml b/pyproject.toml
index acb887f24e..f065435b28 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -49,8 +49,7 @@ members = [
[dependency-groups]
dev = [
- # held back due to https://github.com/psf/black/issues/4963
- "black<26.1.0",
+ "black",
"coverage",
"coveralls",
"fakeredis",
diff --git a/src/auslib/migrate/versions/017_add_scheduled_rule_changes_conditions.py b/src/auslib/migrate/versions/017_add_scheduled_rule_changes_conditions.py
index e7461edf81..bb90abe4b2 100644
--- a/src/auslib/migrate/versions/017_add_scheduled_rule_changes_conditions.py
+++ b/src/auslib/migrate/versions/017_add_scheduled_rule_changes_conditions.py
@@ -37,19 +37,15 @@ def upgrade(migrate_engine):
metadata.create_all()
# 2) Copy the conditions from the existing Scheduled Changes tables to them.
- migrate_engine.execute(
- """INSERT INTO rules_scheduled_changes_conditions
+ migrate_engine.execute("""INSERT INTO rules_scheduled_changes_conditions
(sc_id, telemetry_product, telemetry_channel, telemetry_uptake, data_version, `when`)
SELECT sc_id, telemetry_product, telemetry_channel, telemetry_uptake, data_version, `when` from rules_scheduled_changes;
-"""
- )
- migrate_engine.execute(
- """INSERT INTO rules_scheduled_changes_conditions_history
+""")
+ migrate_engine.execute("""INSERT INTO rules_scheduled_changes_conditions_history
(change_id, changed_by, timestamp, sc_id, telemetry_product, telemetry_channel, telemetry_uptake, data_version, `when`)
SELECT change_id, changed_by, timestamp, sc_id, telemetry_product, telemetry_channel, telemetry_uptake,
data_version, `when` from rules_scheduled_changes_history;
-"""
- )
+""")
# 3) _Then_ drop the conditions columns from the existing Tables.
rules_scheduled_changes = Table("rules_scheduled_changes", metadata, autoload=True)
diff --git a/src/auslib/migrate/versions/019_add_change_type.py b/src/auslib/migrate/versions/019_add_change_type.py
index 1639998c4b..10296b20b3 100644
--- a/src/auslib/migrate/versions/019_add_change_type.py
+++ b/src/auslib/migrate/versions/019_add_change_type.py
@@ -11,20 +11,16 @@ def upgrade(migrate_engine):
# 2) Update the values of change_type depending on base_data_version
- migrate_engine.execute(
- """
+ migrate_engine.execute("""
UPDATE rules_scheduled_changes
SET change_type = "insert"
WHERE base_data_version is NULL;
- """
- )
- migrate_engine.execute(
- """
+ """)
+ migrate_engine.execute("""
UPDATE rules_scheduled_changes
SET change_type = "update"
WHERE base_data_version is not NULL;
- """
- )
+ """)
# 3) Alter the column and set nullable=False
change_type.alter(nullable=False)
@@ -32,20 +28,16 @@ def upgrade(migrate_engine):
change_type = Column("change_type", String(50))
change_type.create(Table("rules_scheduled_changes_history", metadata, autoload=True))
- migrate_engine.execute(
- """
+ migrate_engine.execute("""
UPDATE rules_scheduled_changes_history
SET change_type = "insert"
WHERE base_data_version is NULL;
- """
- )
- migrate_engine.execute(
- """
+ """)
+ migrate_engine.execute("""
UPDATE rules_scheduled_changes_history
SET change_type = "update"
WHERE base_data_version is not NULL;
- """
- )
+ """)
rules_scheduled_changes = Table("rules_scheduled_changes", metadata, autoload=True)
rules_scheduled_changes.c.base_update_type.alter(nullable=True)
diff --git a/src/auslib/util/versions.py b/src/auslib/util/versions.py
index 125d09faba..609fe1960a 100644
--- a/src/auslib/util/versions.py
+++ b/src/auslib/util/versions.py
@@ -56,7 +56,7 @@ def parse(self, vstring):
if not match:
raise ValueError("invalid version number '%s'" % vstring)
- (major, minor, patch, prerelease, prerelease_num) = match.group(1, 2, 4, 5, 6)
+ major, minor, patch, prerelease, prerelease_num = match.group(1, 2, 4, 5, 6)
if patch:
self.version = tuple(map(int, [major, minor, patch]))
diff --git a/taskcluster/balrog_taskgraph/transforms/docker_push.py b/taskcluster/balrog_taskgraph/transforms/docker_push.py
index 4941be6fb9..e04ce009f0 100644
--- a/taskcluster/balrog_taskgraph/transforms/docker_push.py
+++ b/taskcluster/balrog_taskgraph/transforms/docker_push.py
@@ -6,7 +6,6 @@
Set environment variables for the skopeo push-image command
"""
-
import os
import tomllib
diff --git a/taskcluster/balrog_taskgraph/transforms/run_on_releases.py b/taskcluster/balrog_taskgraph/transforms/run_on_releases.py
index 274d2885b7..eebb9d8074 100644
--- a/taskcluster/balrog_taskgraph/transforms/run_on_releases.py
+++ b/taskcluster/balrog_taskgraph/transforms/run_on_releases.py
@@ -6,7 +6,6 @@
Support run-on-releases option
"""
-
from taskgraph.transforms.base import TransformSequence
transforms = TransformSequence()
diff --git a/tests/admin/views/base.py b/tests/admin/views/base.py
index 80c8bf9f8f..7aa4532783 100644
--- a/tests/admin/views/base.py
+++ b/tests/admin/views/base.py
@@ -55,15 +55,13 @@ def my_userinfo(*args, **kwargs):
app.config["M2M_ACCOUNT_MAPPING"] = {}
app.config["CORS_ORIGINS"] = "*"
with open(self.version_file, "w+") as f:
- f.write(
- """
+ f.write("""
{
"source":"https://github.com/mozilla-releng/balrog",
"version":"1.0",
"commit":"abcdef123456"
}
-"""
- )
+""")
dbo.setDb("sqlite:///:memory:", releases_history_buckets={"*": "fake"}, releases_history_class=FakeGCSHistory)
self.orig_releases_history = dbo.releases.history
@@ -119,33 +117,28 @@ def my_userinfo(*args, **kwargs):
dbo.releases.t.insert().execute(name="a", product="a", data=createBlob(dict(name="a", hashFunction="sha512", schema_version=1)), data_version=1)
dbo.releases.t.insert().execute(name="ab", product="a", data=createBlob(dict(name="ab", hashFunction="sha512", schema_version=1)), data_version=1)
dbo.releases.history.bucket.blobs["ab/None-456-bob.json"] = FakeBlob("")
- dbo.releases.history.bucket.blobs["ab/1-456-bob.json"] = FakeBlob(
- """
+ dbo.releases.history.bucket.blobs["ab/1-456-bob.json"] = FakeBlob("""
{
"name": "ab",
"hashFunction": "sha512",
"schema_version": 1
}
-"""
- )
+""")
dbo.releases.t.insert().execute(name="b", product="b", data=createBlob(dict(name="b", hashFunction="sha512", schema_version=1)), data_version=1)
dbo.releases.history.bucket.blobs["b/None-567-bob.json"] = FakeBlob("")
- dbo.releases.history.bucket.blobs["b/1-567-bob.json"] = FakeBlob(
- """
+ dbo.releases.history.bucket.blobs["b/1-567-bob.json"] = FakeBlob("""
{
"name": "b",
"hashFunction": "sha512",
"schema_version": 1
}
-"""
- )
+""")
dbo.releases.t.insert().execute(name="c", product="c", data=createBlob(dict(name="c", hashFunction="sha512", schema_version=1)), data_version=1)
dbo.releases.t.insert().execute(
name="d",
product="d",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "d",
"schema_version": 1,
@@ -164,12 +157,10 @@ def my_userinfo(*args, **kwargs):
}
}
}
-"""
- ),
+"""),
)
dbo.releases.history.bucket.blobs["d/None-678-bob.json"] = FakeBlob("")
- dbo.releases.history.bucket.blobs["d/1-678-bob.json"] = FakeBlob(
- """
+ dbo.releases.history.bucket.blobs["d/1-678-bob.json"] = FakeBlob("""
{
"name": "d",
"schema_version": 1,
@@ -188,8 +179,7 @@ def my_userinfo(*args, **kwargs):
}
}
}
-"""
- )
+""")
dbo.rules.t.insert().execute(
rule_id=1,
priority=100,
diff --git a/tests/admin/views/test_releases.py b/tests/admin/views/test_releases.py
index 5e7a10337d..3696358b29 100644
--- a/tests/admin/views/test_releases.py
+++ b/tests/admin/views/test_releases.py
@@ -17,15 +17,13 @@ def testGetRelease(self):
self.assertStatusCode(ret, 200)
self.assertDictEqual(
ret.get_json(),
- json.loads(
- """
+ json.loads("""
{
"name": "b",
"hashFunction": "sha512",
"schema_version": 1
}
-"""
- ),
+"""),
)
def testGetRelease404(self):
@@ -39,8 +37,7 @@ def testReleasePostUpdateExisting(self):
ret = select([dbo.releases.data]).where(dbo.releases.name == "d").execute().fetchone()[0]
self.assertDictEqual(
ret,
- createBlob(
- """
+ createBlob("""
{
"name": "d",
"schema_version": 1,
@@ -61,8 +58,7 @@ def testReleasePostUpdateExisting(self):
}
}
}
-"""
- ),
+"""),
)
def testReleasePostUpdateExistingWithoutPermission(self):
@@ -148,8 +144,7 @@ def testReleasePutUpdateMergeableOutdatedData(self):
}
}
}"""
- result_blob = createBlob(
- """
+ result_blob = createBlob("""
{
"name": "dd",
"schema_version": 1,
@@ -183,8 +178,7 @@ def testReleasePutUpdateMergeableOutdatedData(self):
}
}
}
- }"""
- )
+ }""")
# Testing Put request to add new release
ret = self._put("/releases/dd", data=dict(blob=ancestor_blob, name="dd", product="dd", data_version=1))
@@ -385,8 +379,7 @@ def testReleasePostCreatesNewReleasev1(self):
self.assertEqual(ret["name"], "e")
self.assertDictEqual(
ret["data"],
- createBlob(
- """
+ createBlob("""
{
"name": "e",
"hashFunction": "sha512",
@@ -395,8 +388,7 @@ def testReleasePostCreatesNewReleasev1(self):
"partial": "foo"
}
}
-"""
- ),
+"""),
)
def testReleasePostCreatesNewReleaseNoAuthentication(self):
@@ -418,8 +410,7 @@ def testReleasePostCreatesNewReleasev2(self):
self.assertEqual(ret["name"], "e")
self.assertDictEqual(
ret["data"],
- createBlob(
- """
+ createBlob("""
{
"name": "e",
"hashFunction": "sha512",
@@ -428,8 +419,7 @@ def testReleasePostCreatesNewReleasev2(self):
"complete": "foo"
}
}
-"""
- ),
+"""),
)
def testReleasePostInvalidKey(self):
@@ -490,8 +480,7 @@ def testLocalePut(self):
self.assertStatusCode(ret, 201)
self.assertEqual(ret.get_data(as_text=True), json.dumps(dict(new_data_version=2)), "Data: %s" % ret.get_data())
ret = select([dbo.releases.data]).where(dbo.releases.name == "ab").execute().fetchone()[0]
- expected = createBlob(
- """
+ expected = createBlob("""
{
"name": "ab",
"schema_version": 1,
@@ -510,8 +499,7 @@ def testLocalePut(self):
}
}
}
-"""
- )
+""")
self.assertDictEqual(ret, expected)
history_entries = [blob.data for name, blob in dbo.releases.history.bucket.blobs.items() if name.startswith("ab/")]
@@ -557,8 +545,7 @@ def testLocalePutSpecificPermission(self):
self.assertStatusCode(ret, 201)
self.assertEqual(ret.get_data(as_text=True), json.dumps(dict(new_data_version=2)), "Data: %s" % ret.get_data())
ret = select([dbo.releases.data]).where(dbo.releases.name == "ab").execute().fetchone()[0]
- expected = createBlob(
- """
+ expected = createBlob("""
{
"name": "ab",
"schema_version": 1,
@@ -577,8 +564,7 @@ def testLocalePutSpecificPermission(self):
}
}
}
-"""
- )
+""")
self.assertDictEqual(ret, expected)
history_entries = [blob.data for name, blob in dbo.releases.history.bucket.blobs.items() if name.startswith("ab/")]
@@ -615,8 +601,7 @@ def testLocalePutForNewRelease(self):
self.assertStatusCode(ret, 201)
self.assertEqual(ret.get_data(as_text=True), json.dumps(dict(new_data_version=2)), "Data: %s" % ret.get_data())
ret = select([dbo.releases.data]).where(dbo.releases.name == "e").execute().fetchone()[0]
- expected = createBlob(
- """
+ expected = createBlob("""
{
"name": "e",
"schema_version": 1,
@@ -635,8 +620,7 @@ def testLocalePutForNewRelease(self):
}
}
}
-"""
- )
+""")
self.assertDictEqual(ret, expected)
history_entries = [blob.data for name, blob in dbo.releases.history.bucket.blobs.items() if name.startswith("e/")]
@@ -651,8 +635,7 @@ def testLocalePutAppend(self):
self.assertStatusCode(ret, 201)
self.assertEqual(ret.get_data(as_text=True), json.dumps(dict(new_data_version=2)), "Data: %s" % ret.get_data())
ret = select([dbo.releases.data]).where(dbo.releases.name == "d").execute().fetchone()[0]
- expected = createBlob(
- """
+ expected = createBlob("""
{
"name": "d",
"schema_version": 1,
@@ -679,13 +662,11 @@ def testLocalePutAppend(self):
}
}
}
-"""
- )
+""")
self.assertDictEqual(ret, expected)
history_entries = [blob.data for name, blob in dbo.releases.history.bucket.blobs.items() if name.startswith("d/")]
- interim_blob = createBlob(
- """
+ interim_blob = createBlob("""
{
"name": "d",
"schema_version": 1,
@@ -704,8 +685,7 @@ def testLocalePutAppend(self):
}
}
}
-"""
- )
+""")
self.assertEqual(len(history_entries), 3)
self.assertEqual(history_entries[0], "")
self.assertDictEqual(json.loads(history_entries[2]), expected)
@@ -719,8 +699,7 @@ def testLocalePutForNewReleaseWithAlias(self):
self.assertStatusCode(ret, 201)
self.assertEqual(ret.get_data(as_text=True), json.dumps(dict(new_data_version=2)), "Data: %s" % ret.get_data())
ret = select([dbo.releases.data]).where(dbo.releases.name == "e").execute().fetchone()[0]
- expected = createBlob(
- """
+ expected = createBlob("""
{
"name": "e",
"hashFunction": "sha512",
@@ -742,8 +721,7 @@ def testLocalePutForNewReleaseWithAlias(self):
}
}
}
-"""
- )
+""")
self.assertDictEqual(ret, expected)
history_entries = [blob.data for name, blob in dbo.releases.history.bucket.blobs.items() if name.startswith("e/")]
@@ -758,8 +736,7 @@ def testLocalePutAppendWithAlias(self):
self.assertStatusCode(ret, 201)
self.assertEqual(ret.get_data(as_text=True), json.dumps(dict(new_data_version=2)), "Data: %s" % ret.get_data())
ret = select([dbo.releases.data]).where(dbo.releases.name == "d").execute().fetchone()[0]
- expected = createBlob(
- """
+ expected = createBlob("""
{
"name": "d",
"schema_version": 1,
@@ -793,13 +770,11 @@ def testLocalePutAppendWithAlias(self):
}
}
}
-"""
- )
+""")
self.assertDictEqual(ret, expected)
history_entries = [blob.data for name, blob in dbo.releases.history.bucket.blobs.items() if name.startswith("d/")]
- interim_blob = createBlob(
- """
+ interim_blob = createBlob("""
{
"name": "d",
"schema_version": 1,
@@ -818,8 +793,7 @@ def testLocalePutAppendWithAlias(self):
}
}
}
-"""
- )
+""")
self.assertEqual(len(history_entries), 3)
self.assertEqual(history_entries[0], "")
self.assertDictEqual(json.loads(history_entries[1]), interim_blob)
@@ -832,8 +806,7 @@ def testLocalePutWithCopy(self):
self.assertStatusCode(ret, 201)
self.assertEqual(ret.get_data(as_text=True), json.dumps(dict(new_data_version=2)), "Data: %s" % ret.get_data())
ret = select([dbo.releases.data]).where(dbo.releases.name == "ab").execute().fetchone()[0]
- expected = createBlob(
- """
+ expected = createBlob("""
{
"name": "ab",
"schema_version": 1,
@@ -852,8 +825,7 @@ def testLocalePutWithCopy(self):
}
}
}
-"""
- )
+""")
self.assertDictEqual(ret, expected)
history_entries = [blob.data for name, blob in dbo.releases.history.bucket.blobs.items() if name.startswith("ab/")]
@@ -862,8 +834,7 @@ def testLocalePutWithCopy(self):
self.assertDictEqual(json.loads(history_entries[2]), expected)
ret = select([dbo.releases.data]).where(dbo.releases.name == "b").execute().fetchone()[0]
- expected = createBlob(
- """
+ expected = createBlob("""
{
"name": "b",
"schema_version": 1,
@@ -882,8 +853,7 @@ def testLocalePutWithCopy(self):
}
}
}
-"""
- )
+""")
self.assertDictEqual(ret, expected)
history_entries = [blob.data for name, blob in dbo.releases.history.bucket.blobs.items() if name.startswith("b/")]
@@ -985,8 +955,7 @@ def testNewReleasePut(self):
self.assertEqual(r[0]["product"], "Firefox")
self.assertDictEqual(
r[0]["data"],
- createBlob(
- """
+ createBlob("""
{
"name": "new_release",
"hashFunction": "sha512",
@@ -1000,8 +969,7 @@ def testNewReleasePut(self):
}
}
}
-"""
- ),
+"""),
)
def testNewReleasePutBadInput(self):
@@ -1092,16 +1060,14 @@ def testPutExistingRelease(self):
self.assertEqual(r[0]["product"], "Firefox")
self.assertDictEqual(
r[0]["data"],
- createBlob(
- """
+ createBlob("""
{
"name": "d",
"schema_version": 3,
"hashFunction": "sha512",
"actions": "doit"
}
-"""
- ),
+"""),
)
def testGMPReleasePut(self):
@@ -1143,8 +1109,7 @@ def testGMPReleasePut(self):
self.assertEqual(r[0]["product"], "a")
self.assertDictEqual(
r[0]["data"],
- createBlob(
- """
+ createBlob("""
{
"name": "gmprel",
"schema_version": 1000,
@@ -1166,8 +1131,7 @@ def testGMPReleasePut(self):
}
}
}
-"""
- ),
+"""),
)
def testGetReleases(self):
@@ -1181,15 +1145,13 @@ def testGetReleasesNamesOnly(self):
self.assertStatusCode(ret, 200)
self.assertDictEqual(
ret.get_json(),
- json.loads(
- """
+ json.loads("""
{
"names": [
"a", "ab", "b", "c", "d"
]
}
-"""
- ),
+"""),
)
def testGetReleasesNamePrefix(self):
@@ -1203,8 +1165,7 @@ def testGetReleasesNamePrefix(self):
self.assertDictEqual(
ret_data,
- json.loads(
- """
+ json.loads("""
{
"releases": [
{"data_version": 1, "name": "a", "product": "a", "read_only": false,
@@ -1222,8 +1183,7 @@ def testGetReleasesNamePrefix(self):
{"data_version": 1, "name": "ab", "product": "a", "read_only": false, "rule_ids": [], "rule_info": {}, "required_signoffs": {}}
]
}
-"""
- ),
+"""),
)
def testGetReleasesNamePrefixNamesOnly(self):
@@ -1231,13 +1191,11 @@ def testGetReleasesNamePrefixNamesOnly(self):
self.assertStatusCode(ret, 200)
self.assertDictEqual(
ret.get_json(),
- json.loads(
- """
+ json.loads("""
{
"names": ["a", "ab"]
}
-"""
- ),
+"""),
)
def testReleasesPost(self):
@@ -1249,8 +1207,7 @@ def testReleasesPost(self):
self.assertEqual(ret["name"], "e")
self.assertDictEqual(
ret["data"],
- createBlob(
- """
+ createBlob("""
{
"name": "e",
"hashFunction": "sha512",
@@ -1259,8 +1216,7 @@ def testReleasesPost(self):
"partial": "foo"
}
}
-"""
- ),
+"""),
)
diff --git a/tests/blobs/test_apprelease.py b/tests/blobs/test_apprelease.py
index 4ab68dc61e..2528899b3e 100755
--- a/tests/blobs/test_apprelease.py
+++ b/tests/blobs/test_apprelease.py
@@ -122,8 +122,7 @@ def setUp(self):
self.metadata.create_all(dbo.engine)
dbo.setDomainAllowlist(self.allowlistedDomains)
self.sampleReleaseBlob = ReleaseBlobV1()
- self.sampleReleaseBlob.loadJSON(
- """
+ self.sampleReleaseBlob.loadJSON("""
{
"name": "j1",
"schema_version": 1,
@@ -203,8 +202,7 @@ def setUp(self):
}
}
}
- """
- )
+ """)
def testGetPartialReleaseReferences_Happy_Case(self):
partial_releases = self.sampleReleaseBlob.getReferencedReleases()
@@ -301,8 +299,7 @@ def setUp(self):
self.specialForceHosts = ["http://a.com"]
self.allowlistedDomains = {"boring.com": ("h",)}
self.blob = ReleaseBlobV1()
- self.blob.loadJSON(
- """
+ self.blob.loadJSON("""
{
"name": "h",
"schema_version": 1,
@@ -326,8 +323,7 @@ def setUp(self):
}
}
}
-}"""
- )
+}""")
def testIsValid(self):
# Raises on error
@@ -353,11 +349,9 @@ def test2_0(self):
expected_header = """
"""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -384,11 +378,9 @@ def test3_0(self):
expected_header = """
"""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -415,11 +407,9 @@ def test3_5(self):
expected_header = """
"""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -446,11 +436,9 @@ def test3_6(self):
expected_header = """
"""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -487,8 +475,7 @@ def setUp(self):
self.specialForceHosts = ["http://a.com"]
self.allowlistedDomains = {"a.com": ("h",), "boring.com": ("h",)}
self.blob = ReleaseBlobV1()
- self.blob.loadJSON(
- """
+ self.blob.loadJSON("""
{
"name": "h",
"schema_version": 1,
@@ -520,8 +507,7 @@ def setUp(self):
}
}
}
-}"""
- )
+}""")
def testSpecialQueryParam(self):
updateQuery = {
@@ -543,11 +529,9 @@ def testSpecialQueryParam(self):
expected_header = """
"""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -574,11 +558,9 @@ def testSpecialQueryParamForced(self):
expected_header = """
"""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -605,11 +587,9 @@ def testSpecialQueryParamForcedFail(self):
expected_header = """
"""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -636,11 +616,9 @@ def testNonSpecialQueryParam(self):
expected_header = """
"""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -667,11 +645,9 @@ def testNonSpecialQueryParamForced(self):
expected_header = """
"""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -698,11 +674,9 @@ def testNoSpecialDefined(self):
expected_header = """
"""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -723,8 +697,7 @@ def setUp(self):
product="j",
version="39.0",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "j1",
"schema_version": 2,
@@ -737,12 +710,10 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
self.blobJ2 = ReleaseBlobV2()
- self.blobJ2.loadJSON(
- """
+ self.blobJ2.loadJSON("""
{
"name": "j2",
"schema_version": 2,
@@ -779,11 +750,9 @@ def setUp(self):
}
}
}
-"""
- )
+""")
self.blobK = ReleaseBlobV2()
- self.blobK.loadJSON(
- """
+ self.blobK.loadJSON("""
{
"name": "k",
"schema_version": 2,
@@ -831,12 +800,10 @@ def setUp(self):
}
}
}
-"""
- )
+""")
self.sampleReleaseBlob = ReleaseBlobV2()
- self.sampleReleaseBlob.loadJSON(
- """
+ self.sampleReleaseBlob.loadJSON("""
{
"name": "SampleBlob",
"schema_version": 2,
@@ -916,8 +883,7 @@ def setUp(self):
}
}
}
- """
- )
+ """)
def testGetPartialReleaseReferences_Happy_Case(self):
partial_releases = self.sampleReleaseBlob.getReferencedReleases()
@@ -949,11 +915,9 @@ def testSchema2CompleteOnly(self):
expected_header = """
"""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -1018,11 +982,9 @@ def testSchema2WithOptionalAttributes(self):
'actions="silent" openURL="http://example.org/url/l" notificationURL="http://example.org/notification/l" '
'alertURL="http://example.org/alert/l">'
)
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -1053,11 +1015,9 @@ def testSchema2WithIsOSUpdate(self):
'showNeverForVersion="true" actions="silent" openURL="http://example.org/url/l2" '
'notificationURL="http://example.org/notification/l2" alertURL="http://example.org/alert/l2">'
)
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -1088,8 +1048,7 @@ def setUp(self):
product="j",
version="0.5",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "j1",
"schema_version": 2,
@@ -1103,12 +1062,10 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
self.blobJ2 = ReleaseBlobV2()
- self.blobJ2.loadJSON(
- """
+ self.blobJ2.loadJSON("""
{
"name": "j2",
"schema_version": 2,
@@ -1138,8 +1095,7 @@ def setUp(self):
}
}
}
-"""
- )
+""")
def testIsValid(self):
# Raises on error
@@ -1165,11 +1121,9 @@ def testCompleteOnly(self):
expected_header = """
"""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -1235,8 +1189,7 @@ def setUp(self):
product="f",
version="22.0",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "f1",
"schema_version": 3,
@@ -1249,16 +1202,14 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
dbo.releases.t.insert().execute(
name="f2",
product="f",
version="23.0",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "f2",
"schema_version": 3,
@@ -1271,12 +1222,10 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
self.blobF3 = ReleaseBlobV3()
- self.blobF3.loadJSON(
- """
+ self.blobF3.loadJSON("""
{
"name": "f3",
"schema_version": 3,
@@ -1332,15 +1281,13 @@ def setUp(self):
}
}
}
-"""
- )
+""")
dbo.releases.t.insert().execute(
name="g1",
product="g",
version="23.0",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "g1",
"schema_version": 3,
@@ -1353,12 +1300,10 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
self.blobG2 = ReleaseBlobV3()
- self.blobG2.loadJSON(
- """
+ self.blobG2.loadJSON("""
{
"name": "g2",
"schema_version": 3,
@@ -1412,12 +1357,10 @@ def setUp(self):
}
}
}
-"""
- )
+""")
self.sampleReleaseBlobV3 = ReleaseBlobV3()
- self.sampleReleaseBlobV3.loadJSON(
- """
+ self.sampleReleaseBlobV3.loadJSON("""
{
"name": "f3",
"schema_version": 3,
@@ -1479,8 +1422,7 @@ def setUp(self):
}
}
}
- """
- )
+ """)
def testGetPartialReleaseReferences_Happy_Case(self):
partial_releases = self.sampleReleaseBlobV3.getReferencedReleases()
@@ -1636,11 +1578,9 @@ def testSchema3NoPartial(self):
expected_header = """
"""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -1667,11 +1607,9 @@ def testSchema3NoPartialBlock(self):
expected_header = """
"""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -1777,8 +1715,7 @@ def setUp(self):
product="h",
version="29.0",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "h0",
"schema_version": 4,
@@ -1791,16 +1728,14 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
dbo.releases.t.insert().execute(
name="h1",
product="h",
version="30.0",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "h1",
"schema_version": 4,
@@ -1813,12 +1748,10 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
self.blobH2 = ReleaseBlobV4()
- self.blobH2.loadJSON(
- """
+ self.blobH2.loadJSON("""
{
"name": "h2",
"schema_version": 4,
@@ -1886,11 +1819,9 @@ def setUp(self):
}
}
}
-"""
- )
+""")
self.blobH3 = ReleaseBlobV4()
- self.blobH3.loadJSON(
- """
+ self.blobH3.loadJSON("""
{
"name": "h3",
"schema_version": 4,
@@ -1964,13 +1895,11 @@ def setUp(self):
}
}
}
-"""
- )
+""")
def testGetPartialReleaseReferences_Happy_Case(self):
sample_release_blob_v4 = ReleaseBlobV4()
- sample_release_blob_v4.loadJSON(
- """
+ sample_release_blob_v4.loadJSON("""
{
"name": "sample",
"schema_version": 4,
@@ -2044,16 +1973,14 @@ def testGetPartialReleaseReferences_Happy_Case(self):
}
}
}
- """
- )
+ """)
partial_releases = sample_release_blob_v4.getReferencedReleases()
self.assertTrue(5, len(partial_releases))
self.assertEqual(sorted(partial_releases), ["h0", "h1", "h2", "h3", "h4"])
def testGetPartialReleaseReferences_Empty_Partials_Case(self):
sample_release_blob_v4 = ReleaseBlobV4()
- sample_release_blob_v4.loadJSON(
- """
+ sample_release_blob_v4.loadJSON("""
{
"name": "h1",
"schema_version": 4,
@@ -2066,15 +1993,13 @@ def testGetPartialReleaseReferences_Empty_Partials_Case(self):
}
}
}
- """
- )
+ """)
partial_releases = sample_release_blob_v4.getReferencedReleases()
self.assertEqual(0, len(partial_releases))
def testGetPartialReleaseReferences_Empty_Locales_Case(self):
sample_release_blob_v4 = ReleaseBlobV4()
- sample_release_blob_v4.loadJSON(
- """
+ sample_release_blob_v4.loadJSON("""
{
"name": "sample",
"schema_version": 4,
@@ -2133,8 +2058,7 @@ def testGetPartialReleaseReferences_Empty_Locales_Case(self):
}
}
}
- """
- )
+ """)
partial_releases = sample_release_blob_v4.getReferencedReleases()
self.assertTrue(4, len(partial_releases))
self.assertEqual(sorted(partial_releases), ["h0", "h1", "h2", "h3"])
@@ -2263,11 +2187,9 @@ def testSchema4NoPartials(self):
expected_header = """
"""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -2293,11 +2215,9 @@ def testSchema4NoPartials(self):
expected_header = """
"""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -2323,11 +2243,9 @@ def testSchema4NoPartials(self):
expected_header = """
"""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -2354,11 +2272,9 @@ def testSchema4MismatchedLocalePartialsAndFileUrls(self):
expected_header = """
"""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected_footer = ""
expected = [x.strip() for x in expected]
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -2367,8 +2283,7 @@ def testSchema4MismatchedLocalePartialsAndFileUrls(self):
def testConvertFromV3(self):
v3Blob = ReleaseBlobV3()
- v3Blob.loadJSON(
- """
+ v3Blob.loadJSON("""
{
"name": "g2",
"schema_version": 3,
@@ -2394,8 +2309,7 @@ def testConvertFromV3(self):
}
}
}
-"""
- )
+""")
v4Blob = ReleaseBlobV4.fromV3(v3Blob)
# Raises on error
@@ -2415,8 +2329,7 @@ def testConvertFromV3(self):
def testConvertFromV3Noop(self):
v3Blob = ReleaseBlobV3()
- v3Blob.loadJSON(
- """
+ v3Blob.loadJSON("""
{
"name": "g2",
"schema_version": 4,
@@ -2449,8 +2362,7 @@ def testConvertFromV3Noop(self):
}
}
}
-"""
- )
+""")
v4Blob = ReleaseBlobV4.fromV3(v3Blob)
# Raises on error
@@ -2495,8 +2407,7 @@ def setUp(self):
product="h",
version="30.0",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "h1",
"schema_version": 5,
@@ -2509,12 +2420,10 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
self.blobH2 = ReleaseBlobV5()
- self.blobH2.loadJSON(
- """
+ self.blobH2.loadJSON("""
{
"name": "h2",
"schema_version": 5,
@@ -2576,13 +2485,11 @@ def setUp(self):
}
}
}
-"""
- )
+""")
def testGetPartialReleaseReferences_Happy_Case(self):
sample_release_blob_v5 = ReleaseBlobV5()
- sample_release_blob_v5.loadJSON(
- """
+ sample_release_blob_v5.loadJSON("""
{
"name": "sample",
"schema_version": 5,
@@ -2644,16 +2551,14 @@ def testGetPartialReleaseReferences_Happy_Case(self):
}
}
}
- """
- )
+ """)
partial_releases = sample_release_blob_v5.getReferencedReleases()
self.assertTrue(2, len(partial_releases))
self.assertEqual(sorted(partial_releases), ["h1", "h2"])
def testGetPartialReleaseReferences_Empty_fileUrls_Case(self):
sample_release_blob_v5 = ReleaseBlobV5()
- sample_release_blob_v5.loadJSON(
- """
+ sample_release_blob_v5.loadJSON("""
{
"name": "h2",
"schema_version": 5,
@@ -2735,8 +2640,7 @@ def testGetPartialReleaseReferences_Empty_fileUrls_Case(self):
}
}
}
- """
- )
+ """)
partial_releases = sample_release_blob_v5.getReferencedReleases()
self.assertTrue(3, len(partial_releases))
self.assertEqual(sorted(partial_releases), ["h1", "h2", "h3"])
@@ -2795,8 +2699,7 @@ def setUp(self):
name="h1",
product="h",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "h1",
"schema_version": 6,
@@ -2809,12 +2712,10 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
self.blobH2 = ReleaseBlobV6()
- self.blobH2.loadJSON(
- """
+ self.blobH2.loadJSON("""
{
"name": "h2",
"schema_version": 6,
@@ -2873,13 +2774,11 @@ def setUp(self):
}
}
}
-"""
- )
+""")
def testGetPartialReleaseReferences_Happy_Case(self):
sample_release_blob_v6 = ReleaseBlobV6()
- sample_release_blob_v6.loadJSON(
- """
+ sample_release_blob_v6.loadJSON("""
{
"name": "h2",
"schema_version": 6,
@@ -2938,16 +2837,14 @@ def testGetPartialReleaseReferences_Happy_Case(self):
}
}
}
- """
- )
+ """)
partial_releases = sample_release_blob_v6.getReferencedReleases()
self.assertTrue(2, len(partial_releases))
self.assertEqual(sorted(partial_releases), ["h1", "h2"])
def testGetPartialReleaseReferences_Empty_Partials_Case(self):
sample_release_blob_v6 = ReleaseBlobV6()
- sample_release_blob_v6.loadJSON(
- """{
+ sample_release_blob_v6.loadJSON("""{
"name": "h1",
"schema_version": 6,
"platforms": {
@@ -2959,8 +2856,7 @@ def testGetPartialReleaseReferences_Empty_Partials_Case(self):
}
}
}
- """
- )
+ """)
partial_releases = sample_release_blob_v6.getReferencedReleases()
self.assertEqual(0, len(partial_releases))
@@ -3006,8 +2902,7 @@ def testSchema6OptionalAttributes(self):
def testCheckFailForUnsuportedAttributes(self):
self.blobH3 = ReleaseBlobV6()
- self.blobH3.loadJSON(
- """
+ self.blobH3.loadJSON("""
{
"name": "h3",
"schema_version": 5,
@@ -3069,8 +2964,7 @@ def testCheckFailForUnsuportedAttributes(self):
}
}
}
-"""
- )
+""")
self.assertRaises(BlobValidationError, self.blobH3.validate, "h", self.allowlistedDomains)
@@ -3085,8 +2979,7 @@ def setUp(self):
name="h1",
product="h",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "h1",
"schema_version": 8,
@@ -3099,8 +2992,7 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
self.blobH2 = ReleaseBlobV8()
self.blobH2.loadJSON(
@@ -3236,8 +3128,7 @@ def setUp(self):
name="h1",
product="h",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "h1",
"schema_version": 9,
@@ -3253,12 +3144,10 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
self.blobH2 = ReleaseBlobV9()
- self.blobH2.loadJSON(
- """
+ self.blobH2.loadJSON("""
{
"name": "h2",
"schema_version": 9,
@@ -3362,8 +3251,7 @@ def setUp(self):
}
}
}
-"""
- )
+""")
def testWithoutActionsByLocale(self):
updateQuery = {
@@ -3517,8 +3405,7 @@ def testWithActions(self):
def testDisableBITS(self):
blob = ReleaseBlobV9()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "bbb",
"schema_version": 9,
@@ -3571,8 +3458,7 @@ def testDisableBITS(self):
}
}
}
-"""
- )
+""")
blob.validate("h", self.allowlistedDomains)
updateQuery = {
"product": "b",
@@ -3594,8 +3480,7 @@ def testDisableBITS(self):
def testDisableBITSFalseNotAllowed(self):
blob = ReleaseBlobV9()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "bbb",
"schema_version": 9,
@@ -3648,14 +3533,12 @@ def testDisableBITSFalseNotAllowed(self):
}
}
}
-"""
- )
+""")
self.assertRaises(BlobValidationError, blob.validate, "h", self.allowlistedDomains)
def testDisableBackgroundUpdates(self):
blob = ReleaseBlobV9()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "bbb",
"schema_version": 9,
@@ -3708,8 +3591,7 @@ def testDisableBackgroundUpdates(self):
}
}
}
-"""
- )
+""")
blob.validate("h", self.allowlistedDomains)
updateQuery = {
"product": "b",
@@ -3732,8 +3614,7 @@ def testDisableBackgroundUpdates(self):
def testDisableBackgroundUpdatesFalseNotAllowed(self):
blob = ReleaseBlobV9()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "bbb",
"schema_version": 9,
@@ -3786,8 +3667,7 @@ def testDisableBackgroundUpdatesFalseNotAllowed(self):
}
}
}
- """
- )
+ """)
self.assertRaises(BlobValidationError, blob.validate, "h", self.allowlistedDomains)
@@ -3876,16 +3756,14 @@ def setUp(self):
dbo.setDb("sqlite:///:memory:", releases_history_buckets={"*": "fake"}, releases_history_class=FakeGCSHistory)
self.metadata.create_all(dbo.engine)
self.blob = DesupportBlob()
- self.blob.loadJSON(
- """
+ self.blob.loadJSON("""
{
"name": "d1",
"schema_version": 50,
"detailsUrl": "http://moo.com/%locale%/cow/%version%/%os%",
"displayVersion": "50.0"
}
-"""
- )
+""")
def testDesupport(self):
updateQuery = {"locale": "", "version": "", "buildTarget": "Darwin_x86_64-gcc3-u-i386-x86_64"}
@@ -3894,11 +3772,9 @@ def testDesupport(self):
returned_footer = self.blob.getInnerFooterXML(updateQuery, "minor", self.allowlistedDomains, self.specialForceHosts)
returned = [x.strip() for x in returned]
expected_header = ""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
diff --git a/tests/blobs/test_gmp.py b/tests/blobs/test_gmp.py
index c69bb12423..3891a39658 100644
--- a/tests/blobs/test_gmp.py
+++ b/tests/blobs/test_gmp.py
@@ -11,8 +11,7 @@ def setUp(self):
self.specialForceHosts = ["http://a.com"]
self.allowlistedDomains = {"a.com": ("gg",), "boring.com": ("gg",)}
self.blob = GMPBlobV1()
- self.blob.loadJSON(
- """
+ self.blob.loadJSON("""
{
"name": "fake",
"schema_version": 1000,
@@ -73,14 +72,12 @@ def setUp(self):
}
}
}
-"""
- )
+""")
def testValidateHashLength(self):
blob = GMPBlobV1()
blob.allowlistedDomains = {"boring.com": ("gg",)}
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "validName",
"schema_version": 1000,
@@ -98,8 +95,7 @@ def testValidateHashLength(self):
}
}
}
-"""
- )
+""")
self.assertRaisesRegex(
ValueError, ("The hashValue length is different from the required length of 128 for sha512"), blob.validate, "gg", self.allowlistedDomains
)
@@ -262,11 +258,9 @@ def testGMPUpdateSingleAddons(self):
returned_footer = self.blob.getInnerFooterXML(updateQuery, "minor", self.allowlistedDomains, self.specialForceHosts)
returned = [x.strip() for x in returned]
expected_header = ""
- expected = [
- """
+ expected = ["""
-"""
- ]
+"""]
expected = [x.strip() for x in expected]
expected_footer = ""
self.assertEqual(returned_header.strip(), expected_header.strip())
@@ -361,8 +355,7 @@ def testGMPWithForbiddenDomainInMirror(self):
def testContainsForbiddenDomain(self):
blob = GMPBlobV1()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 1000,
@@ -380,14 +373,12 @@ def testContainsForbiddenDomain(self):
}
}
}
-"""
- )
+""")
self.assertTrue(blob.containsForbiddenDomain("gg", self.allowlistedDomains))
def testContainsForbiddenDomainInMirror(self):
blob = GMPBlobV1()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 1000,
@@ -406,14 +397,12 @@ def testContainsForbiddenDomainInMirror(self):
}
}
}
-"""
- )
+""")
self.assertTrue(blob.containsForbiddenDomain("gg", self.allowlistedDomains))
def testDoesNotContainForbiddenDomain(self):
blob = GMPBlobV1()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 1000,
@@ -431,14 +420,12 @@ def testDoesNotContainForbiddenDomain(self):
}
}
}
-"""
- )
+""")
self.assertFalse(blob.containsForbiddenDomain("gg", self.allowlistedDomains))
def testDoesNotContainForbiddenDomainWithMirror(self):
blob = GMPBlobV1()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 1000,
@@ -457,47 +444,41 @@ def testDoesNotContainForbiddenDomainWithMirror(self):
}
}
}
-"""
- )
+""")
self.assertFalse(blob.containsForbiddenDomain("gg", self.allowlistedDomains))
def testGMPLayoutEmptyVendor(self):
# Correct layout with empty vendors
blob = GMPBlobV1()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 1000,
"hashFunction": "SHA512",
"vendors": {}
}
- """
- )
+ """)
blob.validate("gg", self.allowlistedDomains)
def testGMPLayoutNoVendor(self):
# Incorrect layout with no vendors
blob = GMPBlobV1()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 1000,
"hashFunction": "SHA512"
}
- """
- )
+ """)
self.assertRaises(Exception, blob.validate, "gg", self.allowlistedDomains)
def testGMPLayoutTwoPlatforms(self):
# Correct layout with one vendor and two platforms
blob = GMPBlobV1()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 1000,
@@ -519,16 +500,14 @@ def testGMPLayoutTwoPlatforms(self):
}
}
}
- """
- )
+ """)
blob.validate("gg", self.allowlistedDomains)
def testGMPLayoutMissingVersion(self):
# Incorrect layout with missing version for an vendor name
blob = GMPBlobV1()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 1000,
@@ -549,16 +528,14 @@ def testGMPLayoutMissingVersion(self):
}
}
}
- """
- )
+ """)
self.assertRaises(Exception, blob.validate, "gg", self.allowlistedDomains)
def testGMPLayoutEmptyPlatforms(self):
# Correct layout with empty platforms
blob = GMPBlobV1()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 1000,
@@ -570,16 +547,14 @@ def testGMPLayoutEmptyPlatforms(self):
}
}
}
- """
- )
+ """)
blob.validate("gg", self.allowlistedDomains)
def testGMPLayoutEmptyPlatformName(self):
# Incorrect layout with empty platform name
blob = GMPBlobV1()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 1000,
@@ -599,16 +574,14 @@ def testGMPLayoutEmptyPlatformName(self):
}
}
}
- """
- )
+ """)
self.assertRaises(Exception, blob.validate, "gg", self.allowlistedDomains)
def testGMPLayoutNoFilesize(self):
# Incorrect layout with missing filesize
blob = GMPBlobV1()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 1000,
@@ -629,6 +602,5 @@ def testGMPLayoutNoFilesize(self):
}
}
}
- """
- )
+ """)
self.assertRaises(Exception, blob.validate, "gg", self.allowlistedDomains)
diff --git a/tests/blobs/test_guardian.py b/tests/blobs/test_guardian.py
index 0e9a7f3d12..ac6ac5634a 100644
--- a/tests/blobs/test_guardian.py
+++ b/tests/blobs/test_guardian.py
@@ -7,8 +7,7 @@
@pytest.fixture(scope="session")
def guardianblob():
blob = GuardianBlob()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "Guardian-1.0.0.0",
"product": "Guardian",
@@ -27,8 +26,7 @@ def guardianblob():
}
}
}
-"""
- )
+""")
return blob
diff --git a/tests/blobs/test_superblob.py b/tests/blobs/test_superblob.py
index 635ce0bfca..3bedb17262 100644
--- a/tests/blobs/test_superblob.py
+++ b/tests/blobs/test_superblob.py
@@ -10,8 +10,7 @@ def setUp(self):
self.specialForceHosts = ("http://a.com",)
self.allowlistedDomains = {"a.com": ("b", "c", "e", "b2g", "response-a", "response-b", "s")}
self.superblob_gmp = SuperBlob()
- self.superblob_gmp.loadJSON(
- """
+ self.superblob_gmp.loadJSON("""
{
"name": "GMPSuperblob",
"schema_version": 1000,
@@ -20,11 +19,9 @@ def setUp(self):
"d"
]
}
-"""
- )
+""")
self.superblob_addon = SuperBlob()
- self.superblob_addon.loadJSON(
- """
+ self.superblob_addon.loadJSON("""
{
"name": "SystemAddOnsSuperblob",
"schema_version": 1000,
@@ -33,8 +30,7 @@ def setUp(self):
"Pocket-2.0"
]
}
-"""
- )
+""")
def testGetResponseBlobs(self):
blob_names_addon = self.superblob_addon.getResponseBlobs()
diff --git a/tests/blobs/test_systemaddons.py b/tests/blobs/test_systemaddons.py
index f8567be619..823b5ed405 100644
--- a/tests/blobs/test_systemaddons.py
+++ b/tests/blobs/test_systemaddons.py
@@ -10,8 +10,7 @@ def setUp(self):
self.specialForceHosts = ["http://a.com"]
self.allowlistedDomains = {"a.com": ("gg",), "boring.com": ("gg",)}
self.blob1 = SystemAddonsBlob()
- self.blob1.loadJSON(
- """
+ self.blob1.loadJSON("""
{
"name": "fake",
"schema_version": 5000,
@@ -57,41 +56,34 @@ def setUp(self):
}
}
}
-"""
- )
+""")
self.blob2 = SystemAddonsBlob()
- self.blob2.loadJSON(
- """
+ self.blob2.loadJSON("""
{
"name": "fake",
"schema_version": 5000,
"hashFunction": "SHA512",
"uninstall": true
}
-"""
- )
+""")
self.blob3 = SystemAddonsBlob()
- self.blob3.loadJSON(
- """
+ self.blob3.loadJSON("""
{
"name": "fake",
"schema_version": 5000,
"hashFunction": "SHA512",
"uninstall": false
}
-"""
- )
+""")
self.empty_blob = SystemAddonsBlob()
- self.empty_blob.loadJSON(
- """
+ self.empty_blob.loadJSON("""
{
"name": "fake",
"schema_version": 5000,
"hashFunction": "SHA512",
"addons": {}
}
-"""
- )
+""")
def testXML(self):
updateQuery = {
@@ -204,8 +196,7 @@ def testXMLNoAddonsNoUninstallBlob(self):
def testContainsForbiddenDomain(self):
blob = SystemAddonsBlob()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 1000,
@@ -223,14 +214,12 @@ def testContainsForbiddenDomain(self):
}
}
}
-"""
- )
+""")
self.assertTrue(blob.containsForbiddenDomain("gg", self.allowlistedDomains))
def testDoesNotContainForbiddenDomain(self):
blob = SystemAddonsBlob()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 1000,
@@ -248,63 +237,55 @@ def testDoesNotContainForbiddenDomain(self):
}
}
}
-"""
- )
+""")
self.assertFalse(blob.containsForbiddenDomain("gg", self.allowlistedDomains))
def testAddonLayoutEmptyAddons(self):
# Correct layout with empty addons
blob = SystemAddonsBlob()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 5000,
"hashFunction": "SHA512",
"addons": {}
}
- """
- )
+ """)
blob.validate("gg", self.allowlistedDomains)
def testAddonLayoutWithUninstall(self):
# Correct layout with no addons, and with uninstall
blob = SystemAddonsBlob()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 5000,
"hashFunction": "SHA512",
"uninstall": false
}
- """
- )
+ """)
blob.validate("gg", self.allowlistedDomains)
def testAddonLayoutNoAddonsNoUninstall(self):
# Incorrect layout with no addons and no uninstall
blob = SystemAddonsBlob()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 5000,
"hashFunction": "SHA512"
}
- """
- )
+ """)
self.assertRaises(Exception, blob.validate, "gg", self.allowlistedDomains)
def testAddonLayoutTwoPlatforms(self):
# Correct layout with one addon and two platforms
blob = SystemAddonsBlob()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 5000,
@@ -325,16 +306,14 @@ def testAddonLayoutTwoPlatforms(self):
}
}
}
- """
- )
+ """)
blob.validate("gg", self.allowlistedDomains)
def testAddonLayoutNoVersion(self):
# Incorrect layout with missing version for an addon name
blob = SystemAddonsBlob()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 5000,
@@ -354,16 +333,14 @@ def testAddonLayoutNoVersion(self):
}
}
}
- """
- )
+ """)
self.assertRaises(Exception, blob.validate, "gg", self.allowlistedDomains)
def testAddonLayoutEmptyPlatforms(self):
# Correct layout with empty platforms
blob = SystemAddonsBlob()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 5000,
@@ -375,16 +352,14 @@ def testAddonLayoutEmptyPlatforms(self):
}
}
}
- """
- )
+ """)
blob.validate("gg", self.allowlistedDomains)
def testAddonLayoutEmptyPlatformName(self):
# Incorrect layout with empty platform name
blob = SystemAddonsBlob()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 5000,
@@ -403,16 +378,14 @@ def testAddonLayoutEmptyPlatformName(self):
}
}
}
- """
- )
+ """)
self.assertRaises(Exception, blob.validate, "gg", self.allowlistedDomains)
def testAddonLayoutNoFilesize(self):
# Incorrect layout with missing filesize
blob = SystemAddonsBlob()
- blob.loadJSON(
- """
+ blob.loadJSON("""
{
"name": "fake",
"schema_version": 5000,
@@ -432,6 +405,5 @@ def testAddonLayoutNoFilesize(self):
}
}
}
- """
- )
+ """)
self.assertRaises(Exception, blob.validate, "gg", self.allowlistedDomains)
diff --git a/tests/test_AUS.py b/tests/test_AUS.py
index b2434977d8..3dca5f7822 100644
--- a/tests/test_AUS.py
+++ b/tests/test_AUS.py
@@ -93,121 +93,121 @@ def se(*args, **kwargs):
return (served_mapping, served_fallback, served_pinned, tested)
def testThrottling100(self):
- (served, _, _, tested) = self.random_aus_test(background_rate=100)
+ served, _, _, tested = self.random_aus_test(background_rate=100)
self.assertEqual(served, 1)
self.assertEqual(tested, 1)
def testThrottling50(self):
- (served, _, _, tested) = self.random_aus_test(background_rate=50)
+ served, _, _, tested = self.random_aus_test(background_rate=50)
self.assertEqual(served, 50)
self.assertEqual(tested, 100)
def testThrottling25(self):
- (served, _, _, tested) = self.random_aus_test(background_rate=25)
+ served, _, _, tested = self.random_aus_test(background_rate=25)
self.assertEqual(served, 25)
self.assertEqual(tested, 100)
def testThrottlingZero(self):
- (served, _, _, tested) = self.random_aus_test(background_rate=0)
+ served, _, _, tested = self.random_aus_test(background_rate=0)
self.assertEqual(served, 0)
self.assertEqual(tested, 100)
def testThrottling25WithForcing(self):
- (served, _, _, tested) = self.random_aus_test(background_rate=25, force=FORCE_MAIN_MAPPING)
+ served, _, _, tested = self.random_aus_test(background_rate=25, force=FORCE_MAIN_MAPPING)
self.assertEqual(served, 1)
self.assertEqual(tested, 1)
def testThrottling25WithForcingFailure(self):
- (served, fallback, _, tested) = self.random_aus_test(background_rate=25, force=FORCE_FALLBACK_MAPPING)
+ served, fallback, _, tested = self.random_aus_test(background_rate=25, force=FORCE_FALLBACK_MAPPING)
self.assertEqual(served, 0)
self.assertEqual(fallback, 0)
self.assertEqual(tested, 1)
def testThrottling100WithFallback(self):
- (served_mapping, served_fallback, _, tested) = self.random_aus_test(background_rate=100, fallback=True)
+ served_mapping, served_fallback, _, tested = self.random_aus_test(background_rate=100, fallback=True)
self.assertEqual(served_mapping, 1)
self.assertEqual(served_fallback, 0)
self.assertEqual(tested, 1)
def testThrottling50WithFallback(self):
- (served_mapping, served_fallback, _, tested) = self.random_aus_test(background_rate=50, fallback=True)
+ served_mapping, served_fallback, _, tested = self.random_aus_test(background_rate=50, fallback=True)
self.assertEqual(served_mapping, 50)
self.assertEqual(served_fallback, 50)
self.assertEqual(tested, 100)
def testThrottling25WithFallback(self):
- (served_mapping, served_fallback, _, tested) = self.random_aus_test(background_rate=25, fallback=True)
+ served_mapping, served_fallback, _, tested = self.random_aus_test(background_rate=25, fallback=True)
self.assertEqual(served_mapping, 25)
self.assertEqual(served_fallback, 75)
self.assertEqual(tested, 100)
def testThrottlingZeroWithFallback(self):
- (served_mapping, served_fallback, _, tested) = self.random_aus_test(background_rate=0, fallback=True)
+ served_mapping, served_fallback, _, tested = self.random_aus_test(background_rate=0, fallback=True)
self.assertEqual(served_mapping, 0)
self.assertEqual(served_fallback, 100)
self.assertEqual(tested, 100)
def testThrottling25WithForcingAndFallback(self):
- (served_mapping, served_fallback, _, tested) = self.random_aus_test(background_rate=25, force=FORCE_MAIN_MAPPING, fallback=True)
+ served_mapping, served_fallback, _, tested = self.random_aus_test(background_rate=25, force=FORCE_MAIN_MAPPING, fallback=True)
self.assertEqual(served_mapping, 1)
self.assertEqual(served_fallback, 0)
self.assertEqual(tested, 1)
def testThrottling25WithForcingFailureAndFallback(self):
- (served, fallback, _, tested) = self.random_aus_test(background_rate=25, force=FORCE_FALLBACK_MAPPING, fallback=True)
+ served, fallback, _, tested = self.random_aus_test(background_rate=25, force=FORCE_FALLBACK_MAPPING, fallback=True)
self.assertEqual(served, 0)
self.assertEqual(fallback, 1)
self.assertEqual(tested, 1)
def testPinningWithThrottling100(self):
- (_, _, served_pinned, tested) = self.random_aus_test(background_rate=100, pin=True)
+ _, _, served_pinned, tested = self.random_aus_test(background_rate=100, pin=True)
self.assertEqual(served_pinned, 1)
self.assertEqual(tested, 1)
def testPinningWithThrottling25WithForcing(self):
- (_, _, served_pinned, tested) = self.random_aus_test(background_rate=25, force=FORCE_MAIN_MAPPING, pin=True)
+ _, _, served_pinned, tested = self.random_aus_test(background_rate=25, force=FORCE_MAIN_MAPPING, pin=True)
self.assertEqual(served_pinned, 1)
self.assertEqual(tested, 1)
def testPinningWithThrottling100WithFallback(self):
- (_, _, served_pinned, tested) = self.random_aus_test(background_rate=100, fallback=True, pin=True)
+ _, _, served_pinned, tested = self.random_aus_test(background_rate=100, fallback=True, pin=True)
self.assertEqual(served_pinned, 1)
self.assertEqual(tested, 1)
def testPinningWithThrottling25WithFallback(self):
- (_, _, served_pinned, tested) = self.random_aus_test(background_rate=25, fallback=True, pin=True)
+ _, _, served_pinned, tested = self.random_aus_test(background_rate=25, fallback=True, pin=True)
self.assertEqual(served_pinned, 100)
self.assertEqual(tested, 100)
def testPinningWithThrottlingZeroWithFallback(self):
- (_, _, served_pinned, tested) = self.random_aus_test(background_rate=0, fallback=True, pin=True)
+ _, _, served_pinned, tested = self.random_aus_test(background_rate=0, fallback=True, pin=True)
self.assertEqual(served_pinned, 100)
self.assertEqual(tested, 100)
def testPinningWithThrottling25WithForcingAndFallback(self):
- (_, _, served_pinned, tested) = self.random_aus_test(background_rate=25, force=FORCE_MAIN_MAPPING, fallback=True, pin=True)
+ _, _, served_pinned, tested = self.random_aus_test(background_rate=25, force=FORCE_MAIN_MAPPING, fallback=True, pin=True)
self.assertEqual(served_pinned, 1)
self.assertEqual(tested, 1)
def testPinningWithThrottling25WithForcingFailureAndFallback(self):
- (_, _, served_pinned, tested) = self.random_aus_test(background_rate=25, force=FORCE_FALLBACK_MAPPING, fallback=True, pin=True)
+ _, _, served_pinned, tested = self.random_aus_test(background_rate=25, force=FORCE_FALLBACK_MAPPING, fallback=True, pin=True)
self.assertEqual(served_pinned, 1)
self.assertEqual(tested, 1)
diff --git a/tests/test_db.py b/tests/test_db.py
index 7830a289ba..fcf9d77aaf 100644
--- a/tests/test_db.py
+++ b/tests/test_db.py
@@ -3915,8 +3915,7 @@ async def testInsertCreatesCorrectHistory(self):
async def testUpdateCreatesCorrectHistory(self):
await self.release_assets.async_update(
where={"name": "Firefox-60.0-build1", "path": ".platforms.Linux_x86_64-gcc3.locales.en-US"},
- what={
- "data": """{
+ what={"data": """{
"appVersion": "60.0",
"buildID": "20200827144429",
"completes": [
@@ -3934,8 +3933,7 @@ async def testUpdateCreatesCorrectHistory(self):
"hashValue": "311324ceacfb8450a948da6b2176a1103d8a4eb716381951fb197b4414097efee9a91c9fd4fbcb797dd1e80fe69b8e2410a945602d5dfd0a5c485a004c52fbda"
}
]
-}"""
- },
+}"""},
changed_by="bob",
old_data_version=1,
)
@@ -4388,8 +4386,7 @@ def setUp(self):
name="a",
product="a",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "a",
"schema_version": 1,
@@ -4413,22 +4410,19 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
self.releases.t.insert().execute(
name="b",
product="b",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "b",
"hashFunction": "sha512",
"schema_version": 1
}
-"""
- ),
+"""),
)
self.db.permissions.t.insert().execute(permission="admin", username="bill", data_version=1)
self.db.permissions.t.insert().execute(permission="admin", username="me", data_version=1)
@@ -4471,8 +4465,7 @@ def testAddLocaleToRelease(self):
data = {"complete": {"filesize": 1, "from": "*", "hashValue": "abc"}}
self.releases.addLocaleToRelease(name="a", product="a", platform="p", locale="c", data=data, old_data_version=1, changed_by="bill")
ret = select([self.releases.data]).where(self.releases.name == "a").execute().fetchone()[0]
- expected = createBlob(
- """
+ expected = createBlob("""
{
"name": "a",
"schema_version": 1,
@@ -4503,16 +4496,14 @@ def testAddLocaleToRelease(self):
}
}
}
-"""
- )
+""")
self.assertEqual(ret, expected)
def testAddLocaleToReleaseWithAlias(self):
data = {"complete": {"filesize": 123, "from": "*", "hashValue": "abc"}}
self.releases.addLocaleToRelease(name="a", product="a", platform="p", locale="c", data=data, old_data_version=1, changed_by="bill", alias=["p4"])
ret = select([self.releases.data]).where(self.releases.name == "a").execute().fetchone()[0]
- expected = createBlob(
- """
+ expected = createBlob("""
{
"name": "a",
"hashFunction": "sha512",
@@ -4546,16 +4537,14 @@ def testAddLocaleToReleaseWithAlias(self):
}
}
}
-"""
- )
+""")
self.assertEqual(ret, expected)
def testAddLocaleToReleaseOverride(self):
data = {"complete": {"filesize": 123, "from": "*", "hashValue": "789"}}
self.releases.addLocaleToRelease(name="a", product="a", platform="p", locale="l", data=data, old_data_version=1, changed_by="bill")
ret = select([self.releases.data]).where(self.releases.name == "a").execute().fetchone()[0]
- expected = createBlob(
- """
+ expected = createBlob("""
{
"name": "a",
"hashFunction": "sha512",
@@ -4579,16 +4568,14 @@ def testAddLocaleToReleaseOverride(self):
}
}
}
-"""
- )
+""")
self.assertEqual(ret, expected)
def testAddLocaleToReleasePlatformsDoesntExist(self):
data = {"complete": {"filesize": 432, "from": "*", "hashValue": "abc"}}
self.releases.addLocaleToRelease(name="b", product="b", platform="q", locale="l", data=data, old_data_version=1, changed_by="bill")
ret = select([self.releases.data]).where(self.releases.name == "b").execute().fetchone()[0]
- expected = createBlob(
- """
+ expected = createBlob("""
{
"name": "b",
"hashFunction": "sha512",
@@ -4607,16 +4594,14 @@ def testAddLocaleToReleasePlatformsDoesntExist(self):
}
}
}
-"""
- )
+""")
self.assertEqual(ret, expected)
def testAddLocaleToReleaseNoLocales(self):
data = {"complete": {"filesize": 432, "from": "*", "hashValue": "abc"}}
self.releases.addLocaleToRelease(name="a", product="a", platform="p3", locale="l", data=data, old_data_version=1, changed_by="bill")
ret = select([self.releases.data]).where(self.releases.name == "a").execute().fetchone()[0]
- expected = createBlob(
- """
+ expected = createBlob("""
{
"name": "a",
"hashFunction": "sha512",
@@ -4649,16 +4634,14 @@ def testAddLocaleToReleaseNoLocales(self):
}
}
}
-"""
- )
+""")
self.assertEqual(ret, expected)
def testAddLocaleToReleaseSecondPlatform(self):
data = {"complete": {"filesize": 324, "from": "*", "hashValue": "abc"}}
self.releases.addLocaleToRelease(name="a", product="a", platform="q", locale="l", data=data, old_data_version=1, changed_by="bill")
ret = select([self.releases.data]).where(self.releases.name == "a").execute().fetchone()[0]
- expected = createBlob(
- """
+ expected = createBlob("""
{
"name": "a",
"hashFunction": "sha512",
@@ -4693,16 +4676,14 @@ def testAddLocaleToReleaseSecondPlatform(self):
}
}
}
-"""
- )
+""")
self.assertEqual(ret, expected)
def testAddLocaleToReleaseResolveAlias(self):
data = {"complete": {"filesize": 444, "from": "*", "hashValue": "abc"}}
self.releases.addLocaleToRelease(name="a", product="a", platform="p2", locale="j", data=data, old_data_version=1, changed_by="bill")
ret = select([self.releases.data]).where(self.releases.name == "a").execute().fetchone()[0]
- expected = createBlob(
- """
+ expected = createBlob("""
{
"name": "a",
"hashFunction": "sha512",
@@ -4733,8 +4714,7 @@ def testAddLocaleToReleaseResolveAlias(self):
}
}
}
-"""
- )
+""")
self.assertEqual(ret, expected)
def testAddLocaleWhenReadOnly(self):
@@ -4745,8 +4725,7 @@ def testAddLocaleWhenReadOnly(self):
)
def testAddMergeableOutdatedData(self):
- ancestor_blob = createBlob(
- """
+ ancestor_blob = createBlob("""
{
"name": "p",
"schema_version": 1,
@@ -4770,10 +4749,8 @@ def testAddMergeableOutdatedData(self):
}
}
}
-"""
- )
- blob1 = createBlob(
- """
+""")
+ blob1 = createBlob("""
{
"name": "p",
"schema_version": 1,
@@ -4804,10 +4781,8 @@ def testAddMergeableOutdatedData(self):
}
}
}
-"""
- )
- blob2 = createBlob(
- """
+""")
+ blob2 = createBlob("""
{
"name": "p",
"schema_version": 1,
@@ -4838,10 +4813,8 @@ def testAddMergeableOutdatedData(self):
}
}
}
-"""
- )
- result_blob = createBlob(
- """
+""")
+ result_blob = createBlob("""
{
"name": "p",
"schema_version": 1,
@@ -4879,8 +4852,7 @@ def testAddMergeableOutdatedData(self):
}
}
}
-"""
- )
+""")
with self.db.begin() as trans:
self.releases.insert(changed_by="bill", name="p", product="z", data=ancestor_blob, transaction=trans)
self.releases.update({"name": "p"}, {"product": "z", "data": blob1}, changed_by="bill", old_data_version=1, transaction=trans)
@@ -4895,8 +4867,7 @@ def testAddMergeableOutdatedData(self):
self.assertEqual(json.loads(history_entries[3]), result_blob)
def testAddMergeableWithChangesToList(self):
- ancestor_blob = createBlob(
- """
+ ancestor_blob = createBlob("""
{
"name": "release4",
"schema_version": 4,
@@ -4924,10 +4895,8 @@ def testAddMergeableWithChangesToList(self):
}
}
}
-"""
- )
- blob1 = createBlob(
- """
+""")
+ blob1 = createBlob("""
{
"name": "release4",
"schema_version": 4,
@@ -4960,10 +4929,8 @@ def testAddMergeableWithChangesToList(self):
}
}
}
-"""
- )
- blob2 = createBlob(
- """
+""")
+ blob2 = createBlob("""
{
"name": "release4",
"schema_version": 4,
@@ -4996,10 +4963,8 @@ def testAddMergeableWithChangesToList(self):
}
}
}
-"""
- )
- result_blob = createBlob(
- """
+""")
+ result_blob = createBlob("""
{
"name": "release4",
"schema_version": 4,
@@ -5037,8 +5002,7 @@ def testAddMergeableWithChangesToList(self):
}
}
}
-"""
- )
+""")
with self.db.begin() as trans:
self.releases.insert(changed_by="bill", name="release4", product="z", data=ancestor_blob, transaction=trans)
self.releases.update({"name": "release4"}, {"product": "z", "data": blob1}, changed_by="bill", old_data_version=1, transaction=trans)
@@ -5053,8 +5017,7 @@ def testAddMergeableWithChangesToList(self):
self.assertEqual(json.loads(history_entries[3]), result_blob)
def testAddConflictingOutdatedData(self):
- ancestor_blob = createBlob(
- """
+ ancestor_blob = createBlob("""
{
"name": "p",
"schema_version": 1,
@@ -5078,10 +5041,8 @@ def testAddConflictingOutdatedData(self):
}
}
}
-"""
- )
- blob1 = createBlob(
- """
+""")
+ blob1 = createBlob("""
{
"name": "p",
"schema_version": 1,
@@ -5112,10 +5073,8 @@ def testAddConflictingOutdatedData(self):
}
}
}
-"""
- )
- blob2 = createBlob(
- """
+""")
+ blob2 = createBlob("""
{
"name": "p",
"schema_version": 1,
@@ -5146,8 +5105,7 @@ def testAddConflictingOutdatedData(self):
}
}
}
-"""
- )
+""")
with self.db.begin() as trans:
self.releases.insert(changed_by="bill", name="p", product="z", data=ancestor_blob, transaction=trans)
self.releases.update({"name": "p"}, {"product": "z", "data": blob1}, changed_by="bill", old_data_version=1, transaction=trans)
@@ -5167,8 +5125,7 @@ def testAddConflictingOutdatedData(self):
self.assertEqual(json.loads(history_entries[2]), blob1)
def testAddLocaleToReleaseDoesMerging(self):
- ancestor_blob = createBlob(
- """
+ ancestor_blob = createBlob("""
{
"name": "release4",
"schema_version": 4,
@@ -5197,10 +5154,8 @@ def testAddLocaleToReleaseDoesMerging(self):
}
}
}
-"""
- )
- result_blob = createBlob(
- """
+""")
+ result_blob = createBlob("""
{
"name": "release4",
"schema_version": 4,
@@ -5239,8 +5194,7 @@ def testAddLocaleToReleaseDoesMerging(self):
}
}
}
-"""
- )
+""")
with self.db.begin() as trans:
self.releases.insert(changed_by="bill", name="release4", product="z", data=ancestor_blob, transaction=trans)
self.releases.addLocaleToRelease(
diff --git a/tests/web/api/base.py b/tests/web/api/base.py
index f6ae108930..35763ebfbf 100644
--- a/tests/web/api/base.py
+++ b/tests/web/api/base.py
@@ -33,8 +33,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
name="Fennec.55.0a1",
product="Fennec",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "Fennec.55.0a1",
"schema_version": 1,
@@ -65,8 +64,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(
rule_id=2, priority=90, backgroundRate=100, mapping="Firefox.55.0a1", update_type="minor", product="Firefox", instructionSet="SSE", data_version=1
@@ -75,8 +73,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
name="Firefox.55.0a1",
product="Firefox",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "Firefox.55.0a1",
"schema_version": 1,
@@ -100,8 +97,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(rule_id=3, priority=90, backgroundRate=0, mapping="q", update_type="minor", product="q", data_version=3)
dbo.rules.history.t.insert().execute(
@@ -114,8 +110,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
name="q",
product="q",
data_version=2,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "q",
"schema_version": 1,
@@ -138,8 +133,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(
diff --git a/tests/web/test_client.py b/tests/web/test_client.py
index 071fa5bcf7..09c2586524 100644
--- a/tests/web/test_client.py
+++ b/tests/web/test_client.py
@@ -135,15 +135,13 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
self.app.config["VERSION_FILE"] = self.version_file
self.app.config["CONTENT_SIGNATURE_PRODUCTS"] = ["gmp"]
with open(self.version_file, "w+") as f:
- f.write(
- """
+ f.write("""
{
"source":"https://github.com/mozilla-releng/balrog",
"version":"1.0",
"commit":"abcdef123456"
}
-"""
- )
+""")
dbo.setDb("sqlite:///:memory:")
self.metadata.create_all(dbo.engine)
dbo.setDomainAllowlist(self.app.config["ALLOWLISTED_DOMAINS"])
@@ -154,8 +152,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
name="b",
product="b",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "b",
"schema_version": 1,
@@ -186,8 +183,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(priority=90, backgroundRate=100, mapping="s", update_type="minor", product="s", instructionSet="SSE", data_version=1)
@@ -195,8 +191,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
name="s",
product="s",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "s",
"schema_version": 1,
@@ -219,16 +214,14 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
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(
- """
+ data=createBlob("""
{
"name": "q",
"schema_version": 1,
@@ -251,15 +244,13 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
dbo.releases.t.insert().execute(
name="fallback",
product="q",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "fallback",
"schema_version": 1,
@@ -282,8 +273,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(
rule_id=42024, priority=90, backgroundRate=100, mapping="c", update_type="minor", product="c", distribution="default", data_version=1
@@ -292,8 +282,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
name="c",
product="c",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "c",
"schema_version": 1,
@@ -316,8 +305,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(
priority=90,
@@ -332,8 +320,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
name="distTest",
product="distTest",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "distTest",
"schema_version": 1,
@@ -356,8 +343,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(priority=80, backgroundRate=100, mapping="c2", update_type="minor", product="c", data_version=1)
@@ -365,8 +351,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
name="c2",
product="c",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "c2",
"schema_version": 1,
@@ -389,16 +374,14 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
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(
- """
+ data=createBlob("""
{
"name": "d",
"schema_version": 1,
@@ -421,8 +404,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(priority=90, backgroundRate=0, mapping="e", update_type="minor", product="e", data_version=1)
@@ -430,8 +412,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
name="e",
product="e",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "e",
"schema_version": 1,
@@ -452,8 +433,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(
@@ -467,8 +447,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
name="f",
product="f",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "f",
"schema_version": 1,
@@ -491,8 +470,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(priority=200, backgroundRate=100, mapping="gmp", update_type="minor", product="gmp", data_version=1)
@@ -510,36 +488,31 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
name="gmp-with-one-response-product",
product="gmp-with-one-response-product",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "superblob",
"schema_version": 4000,
"products": ["response-a"]
}
-"""
- ),
+"""),
)
dbo.releases.t.insert().execute(
name="gmp",
product="gmp",
data_version=1,
- data=createBlob(
- """
+ 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(
- """
+ data=createBlob("""
{
"name": "response-a",
"schema_version": 1,
@@ -574,15 +547,13 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
dbo.releases.t.insert().execute(
name="response-b",
product="response-b",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "response-b",
"schema_version": 1,
@@ -604,8 +575,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(
priority=180, backgroundRate=100, mapping="systemaddons-uninstall", update_type="minor", product="systemaddons-uninstall", data_version=1
@@ -614,24 +584,21 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
name="systemaddons-uninstall",
product="systemaddons-uninstall",
data_version=1,
- data=createBlob(
- """
+ 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(
- """
+ data=createBlob("""
{
"name": "fake",
"schema_version": 5000,
@@ -650,8 +617,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(
@@ -666,8 +632,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
name="product_that_should_not_be_updated-1.1",
product="product_that_should_not_be_updated",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "product_that_should_not_be_updated-1.1",
"schema_version": 1,
@@ -690,8 +655,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(
@@ -706,8 +670,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
name="product_that_should_not_be_updated-2.0",
product="product_that_should_not_be_updated",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "product_that_should_not_be_updated-2.0",
"schema_version": 1,
@@ -730,8 +693,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(
priority=200,
@@ -762,50 +724,43 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
name="superblobaddon-with-one-response-blob",
product="superblobaddon-with-one-response-blob",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "superblobaddon",
"schema_version": 4000,
"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(
- """
+ data=createBlob("""
{
"name": "superblobaddon",
"schema_version": 4000,
"blobs": ["responseblob-a", "responseblob-b"]
}
-"""
- ),
+"""),
)
dbo.releases.t.insert().execute(
name="superblobaddon-with-multiple-response-blob-glob",
product="superblobaddon-with-multiple-response-blob-glob",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "superblobaddon",
"schema_version": 4000,
"blobs": ["responseblob-a", "responseblob-b"]
}
-"""
- ),
+"""),
)
dbo.releases.t.insert().execute(
name="responseblob-a",
product="responseblob-a",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "responseblob-a",
"schema_version": 5000,
@@ -846,15 +801,13 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
dbo.releases.t.insert().execute(
name="responseblob-b",
product="responseblob-b",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "responseblob-b",
"schema_version": 5000,
@@ -874,8 +827,7 @@ def setup(self, insert_release, firefox_54_0_1_build1, firefox_56_0_build1, supe
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(
priority=100, product="Firefox", channel="release", mapping="Firefox-56.0-build1", backgroundRate=100, update_type="minor", data_version=1
@@ -1865,8 +1817,7 @@ def setUp(self):
name="a",
product="a",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "a",
"schema_version": 1,
@@ -1889,16 +1840,14 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(priority=90, backgroundRate=100, mapping="b", update_type="minor", product="b", mig64=True, data_version=1)
dbo.releases.t.insert().execute(
name="b",
product="b",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "b",
"schema_version": 1,
@@ -1921,16 +1870,14 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(priority=90, backgroundRate=100, mapping="c", update_type="minor", product="c", mig64=False, data_version=1)
dbo.releases.t.insert().execute(
name="c",
product="c",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "c",
"schema_version": 1,
@@ -1953,8 +1900,7 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
def testRuleFalseQueryNull(self):
@@ -2027,8 +1973,7 @@ def setUp(self):
name="a",
product="a",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "a",
"schema_version": 1,
@@ -2051,16 +1996,14 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(priority=90, backgroundRate=100, mapping="b", update_type="minor", product="b", jaws=True, data_version=1)
dbo.releases.t.insert().execute(
name="b",
product="b",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "b",
"schema_version": 1,
@@ -2083,16 +2026,14 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(priority=90, backgroundRate=100, mapping="c", update_type="minor", product="c", jaws=False, data_version=1)
dbo.releases.t.insert().execute(
name="c",
product="c",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "c",
"schema_version": 1,
@@ -2115,8 +2056,7 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
def testRuleFalseQueryNull(self):
@@ -2427,8 +2367,7 @@ def setUp(self):
name="Firefox-mozilla-central-nightly-latest",
product="b",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "Firefox-mozilla-central-nightly-latest",
"schema_version": 1,
@@ -2451,8 +2390,7 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
def testGoodNightly(self):
@@ -2495,8 +2433,7 @@ def setUp(self):
name="Firefox-mozilla-central-nightly-1",
product="b",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "Firefox-mozilla-central-nightly-1",
"schema_version": 1,
@@ -2519,16 +2456,14 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
dbo.pinnable_releases.t.insert().execute(data_version=1, product="b", channel="c", version="2.0.", mapping="Firefox-mozilla-central-nightly-2")
dbo.releases.t.insert().execute(
name="Firefox-mozilla-central-nightly-2",
product="b",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "Firefox-mozilla-central-nightly-2",
"schema_version": 1,
@@ -2551,16 +2486,14 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
dbo.pinnable_releases.t.insert().execute(data_version=1, product="b", channel="c", version="2.1.", mapping="Firefox-mozilla-central-nightly-2-1")
dbo.releases.t.insert().execute(
name="Firefox-mozilla-central-nightly-2-1",
product="b",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "Firefox-mozilla-central-nightly-2-1",
"schema_version": 1,
@@ -2583,16 +2516,14 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
dbo.pinnable_releases.t.insert().execute(data_version=1, product="b", channel="c", version="2.2.", mapping="Firefox-mozilla-central-nightly-2-2")
dbo.releases.t.insert().execute(
name="Firefox-mozilla-central-nightly-2-2",
product="b",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "Firefox-mozilla-central-nightly-2-2",
"schema_version": 1,
@@ -2615,8 +2546,7 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
dbo.pinnable_releases.t.insert().execute(data_version=1, product="b", channel="c", version="2.", mapping="Firefox-mozilla-central-nightly-2-3")
dbo.pinnable_releases.t.insert().execute(data_version=1, product="b", channel="c", version="2.3.", mapping="Firefox-mozilla-central-nightly-2-3")
@@ -2624,8 +2554,7 @@ def setUp(self):
name="Firefox-mozilla-central-nightly-2-3",
product="b",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "Firefox-mozilla-central-nightly-2-3",
"schema_version": 1,
@@ -2648,8 +2577,7 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(
priority=200, backgroundRate=100, mapping="Firefox-mozilla-central-nightly-3", update_type="minor", product="b", data_version=1, version="<3.0"
@@ -2660,8 +2588,7 @@ def setUp(self):
name="Firefox-mozilla-central-nightly-3",
product="b",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "Firefox-mozilla-central-nightly-3",
"schema_version": 1,
@@ -2684,8 +2611,7 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
dbo.pinnable_releases.t.insert().execute(data_version=1, product="b", channel="c", version="4.", mapping="Firefox-mozilla-central-nightly-4")
dbo.pinnable_releases.t.insert().execute(data_version=1, product="b", channel="c", version="4.0.", mapping="Firefox-mozilla-central-nightly-4")
@@ -2693,8 +2619,7 @@ def setUp(self):
name="Firefox-mozilla-central-nightly-4",
product="b",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "Firefox-mozilla-central-nightly-4",
"schema_version": 1,
@@ -2717,8 +2642,7 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(
priority=90, backgroundRate=100, mapping="Firefox-mozilla-central-nightly-5", update_type="minor", product="b", data_version=1
@@ -2729,8 +2653,7 @@ def setUp(self):
name="Firefox-mozilla-central-nightly-5",
product="b",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "Firefox-mozilla-central-nightly-5",
"schema_version": 1,
@@ -2753,23 +2676,20 @@ def setUp(self):
}
}
}
-"""
- ),
+"""),
)
dbo.releases.t.insert().execute(
name="desupport",
product="b",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "desupport",
"schema_version": 50,
"detailsUrl": "http://example.com/desupport",
"displayVersion": "1"
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(
priority=100, backgroundRate=100, mapping="desupport", update_type="minor", product="b", data_version=1, osVersion="obsolete"
diff --git a/tests/web/test_json.py b/tests/web/test_json.py
index d87e55b21f..b85d9a9e87 100644
--- a/tests/web/test_json.py
+++ b/tests/web/test_json.py
@@ -47,8 +47,7 @@ def guardian_db():
name="Guardian-Evil-1.0.0.0",
product="Guardian",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "Guardian-Evil-1.0.0.0",
"product": "Guardian",
@@ -63,8 +62,7 @@ def guardian_db():
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(
priority=150,
@@ -90,8 +88,7 @@ def guardian_db():
name="Guardian-0.5.0.0",
product="Guardian",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "Guardian-0.5.0.0",
"product": "Guardian",
@@ -110,15 +107,13 @@ def guardian_db():
}
}
}
-"""
- ),
+"""),
)
dbo.releases.t.insert().execute(
name="Guardian-0.6.0.0",
product="Guardian",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "Guardian-0.6.0.0",
"product": "Guardian",
@@ -137,15 +132,13 @@ def guardian_db():
}
}
}
-"""
- ),
+"""),
)
dbo.releases.t.insert().execute(
name="Guardian-1.0.0.0",
product="Guardian",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "Guardian-1.0.0.0",
"product": "Guardian",
@@ -164,8 +157,7 @@ def guardian_db():
}
}
}
-"""
- ),
+"""),
)
dbo.rules.t.insert().execute(
priority=120,
@@ -233,8 +225,7 @@ def guardian_db():
name="b",
product="b",
data_version=1,
- data=createBlob(
- """
+ data=createBlob("""
{
"name": "b",
"schema_version": 1,
@@ -265,8 +256,7 @@ def guardian_db():
}
}
}
-"""
- ),
+"""),
)
diff --git a/uv.lock b/uv.lock
index 4214f7e422..d4ce9e7d35 100644
--- a/uv.lock
+++ b/uv.lock
@@ -315,7 +315,7 @@ requires-dist = [
[package.metadata.requires-dev]
dev = [
- { name = "black", specifier = "<26.1.0" },
+ { name = "black" },
{ name = "coverage" },
{ name = "coveralls" },
{ name = "fakeredis" },
@@ -384,7 +384,7 @@ dev = [
[[package]]
name = "black"
-version = "25.12.0"
+version = "26.3.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "click" },
@@ -394,19 +394,19 @@ dependencies = [
{ name = "platformdirs" },
{ name = "pytokens" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/c4/d9/07b458a3f1c525ac392b5edc6b191ff140b596f9d77092429417a54e249d/black-25.12.0.tar.gz", hash = "sha256:8d3dd9cea14bff7ddc0eb243c811cdb1a011ebb4800a5f0335a01a68654796a7", size = 659264, upload-time = "2025-12-08T01:40:52.501Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/c8/52/c551e36bc95495d2aa1a37d50566267aa47608c81a53f91daa809e03293f/black-25.12.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a05ddeb656534c3e27a05a29196c962877c83fa5503db89e68857d1161ad08a5", size = 1923809, upload-time = "2025-12-08T01:46:55.126Z" },
- { url = "https://files.pythonhosted.org/packages/a0/f7/aac9b014140ee56d247e707af8db0aae2e9efc28d4a8aba92d0abd7ae9d1/black-25.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9ec77439ef3e34896995503865a85732c94396edcc739f302c5673a2315e1e7f", size = 1742384, upload-time = "2025-12-08T01:49:37.022Z" },
- { url = "https://files.pythonhosted.org/packages/74/98/38aaa018b2ab06a863974c12b14a6266badc192b20603a81b738c47e902e/black-25.12.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e509c858adf63aa61d908061b52e580c40eae0dfa72415fa47ac01b12e29baf", size = 1798761, upload-time = "2025-12-08T01:46:05.386Z" },
- { url = "https://files.pythonhosted.org/packages/16/3a/a8ac542125f61574a3f015b521ca83b47321ed19bb63fe6d7560f348bfe1/black-25.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:252678f07f5bac4ff0d0e9b261fbb029fa530cfa206d0a636a34ab445ef8ca9d", size = 1429180, upload-time = "2025-12-08T01:45:34.903Z" },
- { url = "https://files.pythonhosted.org/packages/e6/2d/bdc466a3db9145e946762d52cd55b1385509d9f9004fec1c97bdc8debbfb/black-25.12.0-cp313-cp313-win_arm64.whl", hash = "sha256:bc5b1c09fe3c931ddd20ee548511c64ebf964ada7e6f0763d443947fd1c603ce", size = 1239350, upload-time = "2025-12-08T01:46:09.458Z" },
- { url = "https://files.pythonhosted.org/packages/35/46/1d8f2542210c502e2ae1060b2e09e47af6a5e5963cb78e22ec1a11170b28/black-25.12.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:0a0953b134f9335c2434864a643c842c44fba562155c738a2a37a4d61f00cad5", size = 1917015, upload-time = "2025-12-08T01:53:27.987Z" },
- { url = "https://files.pythonhosted.org/packages/41/37/68accadf977672beb8e2c64e080f568c74159c1aaa6414b4cd2aef2d7906/black-25.12.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2355bbb6c3b76062870942d8cc450d4f8ac71f9c93c40122762c8784df49543f", size = 1741830, upload-time = "2025-12-08T01:54:36.861Z" },
- { url = "https://files.pythonhosted.org/packages/ac/76/03608a9d8f0faad47a3af3a3c8c53af3367f6c0dd2d23a84710456c7ac56/black-25.12.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9678bd991cc793e81d19aeeae57966ee02909877cb65838ccffef24c3ebac08f", size = 1791450, upload-time = "2025-12-08T01:44:52.581Z" },
- { url = "https://files.pythonhosted.org/packages/06/99/b2a4bd7dfaea7964974f947e1c76d6886d65fe5d24f687df2d85406b2609/black-25.12.0-cp314-cp314-win_amd64.whl", hash = "sha256:97596189949a8aad13ad12fcbb4ae89330039b96ad6742e6f6b45e75ad5cfd83", size = 1452042, upload-time = "2025-12-08T01:46:13.188Z" },
- { url = "https://files.pythonhosted.org/packages/b2/7c/d9825de75ae5dd7795d007681b752275ea85a1c5d83269b4b9c754c2aaab/black-25.12.0-cp314-cp314-win_arm64.whl", hash = "sha256:778285d9ea197f34704e3791ea9404cd6d07595745907dd2ce3da7a13627b29b", size = 1267446, upload-time = "2025-12-08T01:46:14.497Z" },
- { url = "https://files.pythonhosted.org/packages/68/11/21331aed19145a952ad28fca2756a1433ee9308079bd03bd898e903a2e53/black-25.12.0-py3-none-any.whl", hash = "sha256:48ceb36c16dbc84062740049eef990bb2ce07598272e673c17d1a7720c71c828", size = 206191, upload-time = "2025-12-08T01:40:50.963Z" },
+sdist = { url = "https://files.pythonhosted.org/packages/e1/c5/61175d618685d42b005847464b8fb4743a67b1b8fdb75e50e5a96c31a27a/black-26.3.1.tar.gz", hash = "sha256:2c50f5063a9641c7eed7795014ba37b0f5fa227f3d408b968936e24bc0566b07", size = 666155, upload-time = "2026-03-12T03:36:03.593Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/f5/77/5728052a3c0450c53d9bb3945c4c46b91baa62b2cafab6801411b6271e45/black-26.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:855822d90f884905362f602880ed8b5df1b7e3ee7d0db2502d4388a954cc8c54", size = 1895034, upload-time = "2026-03-12T03:40:21.813Z" },
+ { url = "https://files.pythonhosted.org/packages/52/73/7cae55fdfdfbe9d19e9a8d25d145018965fe2079fa908101c3733b0c55a0/black-26.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8a33d657f3276328ce00e4d37fe70361e1ec7614da5d7b6e78de5426cb56332f", size = 1718503, upload-time = "2026-03-12T03:40:23.666Z" },
+ { url = "https://files.pythonhosted.org/packages/e1/87/af89ad449e8254fdbc74654e6467e3c9381b61472cc532ee350d28cfdafb/black-26.3.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f1cd08e99d2f9317292a311dfe578fd2a24b15dbce97792f9c4d752275c1fa56", size = 1793557, upload-time = "2026-03-12T03:40:25.497Z" },
+ { url = "https://files.pythonhosted.org/packages/43/10/d6c06a791d8124b843bf325ab4ac7d2f5b98731dff84d6064eafd687ded1/black-26.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:c7e72339f841b5a237ff14f7d3880ddd0fc7f98a1199e8c4327f9a4f478c1839", size = 1422766, upload-time = "2026-03-12T03:40:27.14Z" },
+ { url = "https://files.pythonhosted.org/packages/59/4f/40a582c015f2d841ac24fed6390bd68f0fc896069ff3a886317959c9daf8/black-26.3.1-cp313-cp313-win_arm64.whl", hash = "sha256:afc622538b430aa4c8c853f7f63bc582b3b8030fd8c80b70fb5fa5b834e575c2", size = 1232140, upload-time = "2026-03-12T03:40:28.882Z" },
+ { url = "https://files.pythonhosted.org/packages/d5/da/e36e27c9cebc1311b7579210df6f1c86e50f2d7143ae4fcf8a5017dc8809/black-26.3.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:2d6bfaf7fd0993b420bed691f20f9492d53ce9a2bcccea4b797d34e947318a78", size = 1889234, upload-time = "2026-03-12T03:40:30.964Z" },
+ { url = "https://files.pythonhosted.org/packages/0e/7b/9871acf393f64a5fa33668c19350ca87177b181f44bb3d0c33b2d534f22c/black-26.3.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:f89f2ab047c76a9c03f78d0d66ca519e389519902fa27e7a91117ef7611c0568", size = 1720522, upload-time = "2026-03-12T03:40:32.346Z" },
+ { url = "https://files.pythonhosted.org/packages/03/87/e766c7f2e90c07fb7586cc787c9ae6462b1eedab390191f2b7fc7f6170a9/black-26.3.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b07fc0dab849d24a80a29cfab8d8a19187d1c4685d8a5e6385a5ce323c1f015f", size = 1787824, upload-time = "2026-03-12T03:40:33.636Z" },
+ { url = "https://files.pythonhosted.org/packages/ac/94/2424338fb2d1875e9e83eed4c8e9c67f6905ec25afd826a911aea2b02535/black-26.3.1-cp314-cp314-win_amd64.whl", hash = "sha256:0126ae5b7c09957da2bdbd91a9ba1207453feada9e9fe51992848658c6c8e01c", size = 1445855, upload-time = "2026-03-12T03:40:35.442Z" },
+ { url = "https://files.pythonhosted.org/packages/86/43/0c3338bd928afb8ee7471f1a4eec3bdbe2245ccb4a646092a222e8669840/black-26.3.1-cp314-cp314-win_arm64.whl", hash = "sha256:92c0ec1f2cc149551a2b7b47efc32c866406b6891b0ee4625e95967c8f4acfb1", size = 1258109, upload-time = "2026-03-12T03:40:36.832Z" },
+ { url = "https://files.pythonhosted.org/packages/8e/0d/52d98722666d6fc6c3dd4c76df339501d6efd40e0ff95e6186a7b7f0befd/black-26.3.1-py3-none-any.whl", hash = "sha256:2bd5aa94fc267d38bb21a70d7410a89f1a1d318841855f698746f8e7f51acd1b", size = 207542, upload-time = "2026-03-12T03:36:01.668Z" },
]
[[package]]