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