diff --git a/src/linkahead/common/models.py b/src/linkahead/common/models.py index 740c81aa8cd10262589f5cf1b07c6fde668b2124..1caa6a4de14fc6551aa7cfe940c2074be80a1281 100644 --- a/src/linkahead/common/models.py +++ b/src/linkahead/common/models.py @@ -1270,7 +1270,8 @@ class Entity: if visited_entities is None: visited_entities = [] if self in visited_entities: - return etree.Comment("Recursive reference") + xml.text = xml2str(etree.Comment("Recursive reference")) + return xml visited_entities.append(self) # unwrap wrapped entity diff --git a/unittests/test_issues.py b/unittests/test_issues.py index 9d422ff84f8e12cc2589d71055ba11ea4857c874..3b0117b28c1300ea1eb0919fce02e3881c2ab025 100644 --- a/unittests/test_issues.py +++ b/unittests/test_issues.py @@ -107,6 +107,7 @@ def test_issue_73(): xml_str = xml2str(recB.to_xml()) assert "<Parent name=\"RT" in xml_str assert "<Property name=\"RT" in xml_str + assert "Recursive reference" in xml_str assert len(xml_str) < 500 # Cross-reference in the properties themselves @@ -117,6 +118,7 @@ def test_issue_73(): xml_str = xml2str(prop2.to_xml()) assert "<Property name=\"Prop1" in xml_str assert "<Property name=\"Prop2" in xml_str + assert "Recursive reference" in xml_str assert len(xml_str) < 500 # Self-reference in the datatype @@ -124,4 +126,5 @@ def test_issue_73(): prop.datatype = prop xml_str = xml2str(prop.to_xml()) assert "datatype=" in xml_str - assert len(xml_str) < 100 + assert "Recursive reference" in xml_str + assert len(xml_str) < 500