From 942367fce069fa7c6548b610790c797599acaec5 Mon Sep 17 00:00:00 2001 From: Agate Date: Wed, 15 Apr 2020 15:51:47 +0200 Subject: [PATCH] Ensure 0 quota on user is honored --- api/funkwhale_api/users/models.py | 6 +++++- api/tests/users/test_models.py | 21 ++++++++++----------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/api/funkwhale_api/users/models.py b/api/funkwhale_api/users/models.py index 914fd6e63..8942321b6 100644 --- a/api/funkwhale_api/users/models.py +++ b/api/funkwhale_api/users/models.py @@ -258,7 +258,11 @@ class User(AbstractUser): return self.actor def get_upload_quota(self): - return self.upload_quota or preferences.get("users__upload_quota") + return ( + self.upload_quota + if self.upload_quota is not None + else preferences.get("users__upload_quota") + ) def get_quota_status(self): data = self.actor.get_current_usage() diff --git a/api/tests/users/test_models.py b/api/tests/users/test_models.py index f98a54d64..c2994640e 100644 --- a/api/tests/users/test_models.py +++ b/api/tests/users/test_models.py @@ -185,18 +185,17 @@ def test_get_channels_groups(factories): ] -def test_user_quota_default_to_preference(factories, preferences): - preferences["users__upload_quota"] = 42 +@pytest.mark.parametrize( + "default_quota, user_quota, expected", + [(1000, None, 1000), (1000, 42, 42), (1000, 0, 0)], +) +def test_user_quota_set_on_user( + default_quota, user_quota, expected, factories, preferences +): + preferences["users__upload_quota"] = default_quota - user = factories["users.User"]() - assert user.get_upload_quota() == 42 - - -def test_user_quota_set_on_user(factories, preferences): - preferences["users__upload_quota"] = 42 - - user = factories["users.User"](upload_quota=66) - assert user.get_upload_quota() == 66 + user = factories["users.User"](upload_quota=user_quota) + assert user.get_upload_quota() == expected def test_user_get_quota_status(factories, preferences, mocker):