From 3b1eb0ed1d2d8bb749239c75fe9aef0b815aa6f8 Mon Sep 17 00:00:00 2001 From: Federico Ceratto Date: Wed, 9 Aug 2023 18:29:45 +0200 Subject: [PATCH] Set mine and archived as bools --- api/debian/changelog | 6 ++++++ api/ooniapi/oonirun.py | 7 +++++-- api/tests/integ/test_oonirun.py | 17 ++++++++++------- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/api/debian/changelog b/api/debian/changelog index 2b534064..b958914d 100644 --- a/api/debian/changelog +++ b/api/debian/changelog @@ -1,3 +1,9 @@ +ooni-api (1.0.64) unstable; urgency=medium + + * Set "mine" and "archived" as bools + + -- Federico Ceratto Wed, 09 Aug 2023 18:29:42 +0200 + ooni-api (1.0.63) unstable; urgency=medium * Add "mine" to incident API diff --git a/api/ooniapi/oonirun.py b/api/ooniapi/oonirun.py index 9dc223f4..0fd6b379 100644 --- a/api/ooniapi/oonirun.py +++ b/api/ooniapi/oonirun.py @@ -274,10 +274,10 @@ def fetch_oonirun_descriptor(oonirun_id) -> Response: descriptor = json.loads(r["descriptor"]) kw = dict( - archived=r["archived"], + archived=bool(r["archived"]), descriptor=descriptor, descriptor_creation_time=r["descriptor_creation_time"], - mine=r["mine"], + mine=bool(r["mine"]), translation_creation_time=r["translation_creation_time"], v=1, ) @@ -387,5 +387,8 @@ def list_oonirun_descriptors() -> Response: ORDER BY descriptor_creation_time, translation_creation_time """ descriptors = list(query_click(query, query_params)) + for d in descriptors: + d["mine"] = bool(d["mine"]) + d["archived"] = bool(d["archived"]) log.debug(f"Returning {len(descriptors)} descriptor[s]") return nocachejson(v=1, descriptors=descriptors) diff --git a/api/tests/integ/test_oonirun.py b/api/tests/integ/test_oonirun.py index 689baf28..11d97b27 100644 --- a/api/tests/integ/test_oonirun.py +++ b/api/tests/integ/test_oonirun.py @@ -167,12 +167,12 @@ def test_create_fetch_archive(cleanup, client, usersession, adminsession): say("find the item created by usersession above") desc = [d for d in r.json["descriptors"] if d["id"] == oonirun_id][0] assert desc == { - "archived": 0, + "archived": False, "author": "integ-test author", "descriptor_creation_time": creation_time, "icon": "myicon", "id": oonirun_id, - "mine": 0, + "mine": False, "name": "integ-test name in English", "short_description": "integ-test short description in English", "translation_creation_time": translation_creation_time, @@ -190,8 +190,8 @@ def test_create_fetch_archive(cleanup, client, usersession, adminsession): r = usersession.get(f"/api/_/ooni_run/fetch/{oonirun_id}") assert r.status_code == 200, r.json assert r.json["v"] == 1, r.json - assert r.json["mine"] == 1, r.json - assert r.json["archived"] == 0, r.json + assert r.json["mine"] is True, r.json + assert r.json["archived"] is False, r.json say("descriptor_creation_time has changed") assert creation_time < r.json["descriptor_creation_time"] assert translation_creation_time < r.json["translation_creation_time"] @@ -210,6 +210,9 @@ def test_create_fetch_archive(cleanup, client, usersession, adminsession): assert r.status_code == 200, r.json descs = r.json["descriptors"] assert len(descs) == 2, r.json + for d in descs: + assert d["mine"] is True + assert d["archived"] is False say("Fail to update the oonirun using the wrong account") r = adminsession.post(f"/api/_/ooni_run/create?id={oonirun_id}", json=z) @@ -234,8 +237,8 @@ def test_create_fetch_archive(cleanup, client, usersession, adminsession): assert translation_creation_time < r.json["translation_creation_time"] exp["description_intl"]["it"] = "integ-test *nuova* descrizione in italiano" assert r.json["descriptor"] == exp - assert r.json["mine"] == 1, r.json - assert r.json["archived"] == 0, r.json + assert r.json["mine"] is True, r.json + assert r.json["archived"] is False, r.json say("Archive it") r = usersession.post(f"/api/_/ooni_run/archive/{oonirun_id}") @@ -257,7 +260,7 @@ def test_create_fetch_archive(cleanup, client, usersession, adminsession): say("Fetch latest and find that it's archived") r = usersession.get(f"/api/_/ooni_run/fetch/{oonirun_id}") assert r.status_code == 200, r.json - assert r.json["archived"] == 1, r.json + assert r.json["archived"] == True, r.json def test_fetch_not_found(cleanup, usersession):