about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gn_auth/auth/authorisation/resources/models.py1
-rw-r--r--tests/unit/auth/fixtures/group_fixtures.py21
-rw-r--r--tests/unit/auth/test_resources.py14
3 files changed, 27 insertions, 9 deletions
diff --git a/gn_auth/auth/authorisation/resources/models.py b/gn_auth/auth/authorisation/resources/models.py
index 80820a5..6d8e008 100644
--- a/gn_auth/auth/authorisation/resources/models.py
+++ b/gn_auth/auth/authorisation/resources/models.py
@@ -136,6 +136,7 @@ def group_leader_resources(
             cursor.execute(
                 "SELECT r.* FROM resource_ownership AS ro "
                 "INNER JOIN resources AS r "
+                "ON ro.resource_id=r.resource_id "
                 "WHERE ro.group_id=?",
                 (str(group.group_id),))
             return tuple(
diff --git a/tests/unit/auth/fixtures/group_fixtures.py b/tests/unit/auth/fixtures/group_fixtures.py
index 93133d2..79683c0 100644
--- a/tests/unit/auth/fixtures/group_fixtures.py
+++ b/tests/unit/auth/fixtures/group_fixtures.py
@@ -15,6 +15,16 @@ TEST_GROUP_02 = Group(uuid.UUID("e37d59d7-c05e-4d67-b479-81e627d8d634"),
                       "AnotherTestGroup", {})
 TEST_GROUPS = (TEST_GROUP_01, TEST_GROUP_02)
 
+SYSTEM_CATEGORY = ResourceCategory(
+    uuid.UUID("aa3d787f-af6a-44fa-9b0b-c82d40e54ad2"),
+    "system",
+    "The overall system.")
+SYSTEM_RESOURCE = Resource(
+    uuid.UUID("0248b289-b277-4eaa-8c94-88a434d14b6e"),
+    "GeneNetwork System",
+    SYSTEM_CATEGORY,
+    True)
+
 GROUP_CATEGORY = ResourceCategory(
     uuid.UUID("1e0f70ee-add5-4358-8c6c-43de77fa4cce"),
     "group",
@@ -24,11 +34,17 @@ GROUPS_AS_RESOURCES = tuple({
     "resource_id": res_id,
     "resource_name": group.group_name,
     "category_id": str(GROUP_CATEGORY.resource_category_id),
-    "public": "1"
+    "public": "0"
 } for res_id, group in zip(
     ("38d1807d-105f-44a7-8327-7e2d973b6d8d",
      "89458ef6-e090-4b53-8c2c-59eaf2785f11"),
     TEST_GROUPS))
+GROUP_RESOURCES = tuple(
+    Resource(uuid.UUID(row["resource_id"]),
+             row["resource_name"],
+             GROUP_CATEGORY,
+             False)
+    for row in GROUPS_AS_RESOURCES)
 
 TEST_RESOURCES_GROUP_01 = (
     Resource(uuid.UUID("26ad1668-29f5-439d-b905-84d551f85955"),
@@ -60,7 +76,8 @@ TEST_RESOURCES_GROUP_02 = (
              True))
 
 TEST_RESOURCES = TEST_RESOURCES_GROUP_01 + TEST_RESOURCES_GROUP_02
-TEST_RESOURCES_PUBLIC = (TEST_RESOURCES_GROUP_01[0], TEST_RESOURCES_GROUP_02[1])
+TEST_RESOURCES_PUBLIC = (
+    SYSTEM_RESOURCE, TEST_RESOURCES_GROUP_01[0], TEST_RESOURCES_GROUP_02[1])
 
 def __gtuple__(cursor):
     return tuple(dict(row) for row in cursor.fetchall())
diff --git a/tests/unit/auth/test_resources.py b/tests/unit/auth/test_resources.py
index ee4f312..9b4d0e7 100644
--- a/tests/unit/auth/test_resources.py
+++ b/tests/unit/auth/test_resources.py
@@ -77,6 +77,9 @@ def sort_key_resources(resource):
     """Sort-key for resources."""
     return resource.resource_id
 
+PUBLIC_RESOURCES = sorted(
+    conftest.TEST_RESOURCES_PUBLIC, key=sort_key_resources)
+
 @pytest.mark.unit_test
 def test_public_resources(fxtr_resources):
     """
@@ -85,12 +88,8 @@ def test_public_resources(fxtr_resources):
     THEN: only list the resources that are public
     """
     conn, _res = fxtr_resources
-    assert sorted(public_resources(conn), key=sort_key_resources) == sorted(tuple(
-        res for res in conftest.TEST_RESOURCES if res.public), key=sort_key_resources)
-
-PUBLIC_RESOURCES = sorted(
-    {res.resource_id: res for res in conftest.TEST_RESOURCES_PUBLIC}.values(),
-    key=sort_key_resources)
+    assert sorted(
+        public_resources(conn), key=sort_key_resources) == PUBLIC_RESOURCES
 
 @pytest.mark.unit_test
 @pytest.mark.parametrize(
@@ -99,7 +98,8 @@ PUBLIC_RESOURCES = sorted(
         conftest.TEST_USERS,
         (sorted(
             {res.resource_id: res for res in
-             (conftest.TEST_RESOURCES_GROUP_01 +
+             ((conftest.GROUP_RESOURCES[0],) +
+              conftest.TEST_RESOURCES_GROUP_01 +
               conftest.TEST_RESOURCES_PUBLIC)}.values(),
             key=sort_key_resources),
          sorted(