Skip to content

Commit df1413b

Browse files
committed
COPDS-2856 - related dataset fix
Avoid cross portal references
1 parent 7e72c00 commit df1413b

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

cads_catalogue/manager.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -680,6 +680,9 @@ def find_related_resources(
680680
and res2.resource_uid != only_involving_uid
681681
):
682682
continue
683+
# avoid cross-portal relationships
684+
if str(res1.portal) != str(res2.portal):
685+
continue
683686
res1_facets = set([r.facet_name for r in res1.facets])
684687
res2_facets = set([r.facet_name for r in res2.facets])
685688
if (

tests/test_40_manager.py

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1863,21 +1863,38 @@ def _to_testable_structure(raw_related):
18631863
return [[r.resource_uid for r in t] for t in raw_related]
18641864

18651865
res1 = database.Resource(
1866-
resource_id=1, resource_uid="res1", related_resources_keywords=["aaa"]
1866+
resource_id=1,
1867+
resource_uid="res1",
1868+
related_resources_keywords=["aaa"],
1869+
portal="a",
18671870
)
18681871
res2 = database.Resource(
1869-
resource_id=2, resource_uid="res2", related_resources_keywords=["aaa", "bbb"]
1872+
resource_id=2,
1873+
resource_uid="res2",
1874+
related_resources_keywords=["aaa", "bbb"],
1875+
portal="a",
18701876
)
18711877
res3 = database.Resource(
1872-
resource_id=3, resource_uid="res3", related_resources_keywords=["ccc"]
1878+
resource_id=3,
1879+
resource_uid="res3",
1880+
related_resources_keywords=["ccc"],
1881+
portal="a",
18731882
)
18741883
res4 = database.Resource(
18751884
resource_id=4,
18761885
resource_uid="res4",
18771886
related_resources_keywords=["aaa"],
18781887
hidden=True,
1888+
portal="a",
18791889
)
1880-
related = manager.find_related_resources([res1, res2, res3, res4])
1890+
res5 = database.Resource(
1891+
resource_id=5,
1892+
resource_uid="res5",
1893+
related_resources_keywords=["aaa"],
1894+
portal="b",
1895+
)
1896+
1897+
related = manager.find_related_resources([res1, res2, res3, res4, res5])
18811898

18821899
assert _to_testable_structure(related) == [
18831900
["res1", "res2"],

0 commit comments

Comments
 (0)