From 0543e295e9065added3786fd389f7d6b3e183b31 Mon Sep 17 00:00:00 2001 From: hiranya911 Date: Tue, 10 Sep 2019 16:46:46 -0700 Subject: [PATCH] Support deleting custom claims by passing None --- firebase_admin/auth.py | 2 ++ integration/test_auth.py | 6 +++--- tests/test_user_mgt.py | 5 +++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/firebase_admin/auth.py b/firebase_admin/auth.py index 47a9a23f7..ebc133d4c 100644 --- a/firebase_admin/auth.py +++ b/firebase_admin/auth.py @@ -421,6 +421,8 @@ def set_custom_user_claims(uid, custom_claims, app=None): FirebaseError: If an error occurs while updating the user account. """ user_manager = _get_auth_service(app).user_manager + if custom_claims is None: + custom_claims = DELETE_ATTRIBUTE user_manager.update_user(uid, custom_claims=custom_claims) diff --git a/integration/test_auth.py b/integration/test_auth.py index eb1464476..1a4bacceb 100644 --- a/integration/test_auth.py +++ b/integration/test_auth.py @@ -310,9 +310,9 @@ def test_update_custom_user_claims(new_user): def test_disable_user(new_user_with_params): user = auth.update_user( new_user_with_params.uid, - display_name=None, - photo_url=None, - phone_number=None, + display_name=auth.DELETE_ATTRIBUTE, + photo_url=auth.DELETE_ATTRIBUTE, + phone_number=auth.DELETE_ATTRIBUTE, disabled=True) assert user.uid == new_user_with_params.uid assert user.email == new_user_with_params.email diff --git a/tests/test_user_mgt.py b/tests/test_user_mgt.py index dc71b6b6d..a971c40a0 100644 --- a/tests/test_user_mgt.py +++ b/tests/test_user_mgt.py @@ -551,9 +551,10 @@ def test_set_custom_user_claims_str(self, user_mgt_app): request = json.loads(recorder[0].body.decode()) assert request == {'localId' : 'testuser', 'customAttributes' : claims} - def test_set_custom_user_claims_remove(self, user_mgt_app): + @pytest.mark.parametrize('claims', [None, auth.DELETE_ATTRIBUTE]) + def test_set_custom_user_claims_remove(self, user_mgt_app, claims): _, recorder = _instrument_user_manager(user_mgt_app, 200, '{"localId":"testuser"}') - auth.set_custom_user_claims('testuser', auth.DELETE_ATTRIBUTE, app=user_mgt_app) + auth.set_custom_user_claims('testuser', claims, app=user_mgt_app) request = json.loads(recorder[0].body.decode()) assert request == {'localId' : 'testuser', 'customAttributes' : json.dumps({})}