From 168c4e7d531e2f42088e4ba4729e280fc81328e8 Mon Sep 17 00:00:00 2001 From: Eliot Berriot <contact@eliotberriot.com> Date: Tue, 3 Apr 2018 17:36:03 +0200 Subject: [PATCH] system_conf property on Actor instances --- api/funkwhale_api/federation/models.py | 6 ++++++ api/tests/federation/test_actors.py | 16 ++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/api/funkwhale_api/federation/models.py b/api/funkwhale_api/federation/models.py index a2cd598f..35ddce96 100644 --- a/api/funkwhale_api/federation/models.py +++ b/api/funkwhale_api/federation/models.py @@ -65,3 +65,9 @@ class Actor(models.Model): settings.FEDERATION_HOSTNAME == self.domain, self.preferred_username in actors.SYSTEM_ACTORS ]) + + @property + def system_conf(self): + from . import actors + if self.is_system: + return actors.SYSTEM_ACTORS[self.preferred_username] diff --git a/api/tests/federation/test_actors.py b/api/tests/federation/test_actors.py index 8afb94ad..e72232fc 100644 --- a/api/tests/federation/test_actors.py +++ b/api/tests/federation/test_actors.py @@ -216,6 +216,22 @@ def test_actor_is_system( assert actor.is_system is expected +@pytest.mark.parametrize('username,domain,expected', [ + ('test', 'wrongdomain.com', None), + ('notsystem', '', None), + ('test', '', actors.SYSTEM_ACTORS['test']), +]) +def test_actor_is_system( + username, domain, expected, nodb_factories, settings): + if not domain: + domain = settings.FEDERATION_HOSTNAME + actor = nodb_factories['federation.Actor']( + preferred_username=username, + domain=domain, + ) + assert actor.system_conf == expected + + @pytest.mark.parametrize('value', [False, True]) def test_library_actor_manually_approves_based_on_setting( value, settings): -- GitLab