From 5f2b9fd0f58512b538984535d285f9675cf4af20 Mon Sep 17 00:00:00 2001 From: pamfilos Date: Wed, 20 Dec 2023 09:36:45 +0100 Subject: [PATCH] records: fixes skipped empty values in serializers Signed-off-by: pamfilos --- cap/modules/deposit/serializers/schemas/json.py | 2 +- cap/modules/records/serializers/schemas/common.py | 4 ++-- cap/modules/records/serializers/schemas/json.py | 2 +- tests/integration/test_get_records.py | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cap/modules/deposit/serializers/schemas/json.py b/cap/modules/deposit/serializers/schemas/json.py index ebb57e05f4..83c07d4f03 100644 --- a/cap/modules/deposit/serializers/schemas/json.py +++ b/cap/modules/deposit/serializers/schemas/json.py @@ -103,7 +103,7 @@ def remove_skip_values(self, data): keys = ["can_review", "review", "x_cap_permission", "egroups"] for key in keys: - if not data.get(key, ""): + if data.get(key, "") is None: del data[key] return data diff --git a/cap/modules/records/serializers/schemas/common.py b/cap/modules/records/serializers/schemas/common.py index 13a33fb4ed..f16326309c 100644 --- a/cap/modules/records/serializers/schemas/common.py +++ b/cap/modules/records/serializers/schemas/common.py @@ -184,7 +184,7 @@ def remove_skip_values(self, data): keys = ["egroups"] for key in keys: - if not data.get(key, ''): + if data.get(key, '') is None: del data[key] return data @@ -246,7 +246,7 @@ def get_schema(self, obj): def get_egroups(self, obj): _egroups = obj.get("metadata", {}).get("_egroups", []) - if "deposit" not in obj or obj["deposit"].schema_egroups_enabled(): + if "deposit" in obj and obj["deposit"].schema_egroups_enabled(): return _egroups else: return None diff --git a/cap/modules/records/serializers/schemas/json.py b/cap/modules/records/serializers/schemas/json.py index 16fc1e0676..10dfc549d1 100644 --- a/cap/modules/records/serializers/schemas/json.py +++ b/cap/modules/records/serializers/schemas/json.py @@ -79,7 +79,7 @@ def remove_skip_values(self, data): keys = ["can_review", "review", "egroups"] for key in keys: - if not data.get(key, ''): + if data.get(key, '') is None: del data[key] return data diff --git a/tests/integration/test_get_records.py b/tests/integration/test_get_records.py index ad4b33065b..9339449df0 100644 --- a/tests/integration/test_get_records.py +++ b/tests/integration/test_get_records.py @@ -442,7 +442,7 @@ def test_get_record_with_form_json_serializer( }, 'can_update': True, 'is_owner': True, - # 'can_review': False, + 'can_review': False, 'created': rec.created.strftime('%Y-%m-%dT%H:%M:%S.%f+00:00'), 'updated': rec.updated.strftime('%Y-%m-%dT%H:%M:%S.%f+00:00'), 'created_by': {'email': example_user.email, 'profile': {}},