diff --git a/src/caosdb/apiutils.py b/src/caosdb/apiutils.py index bd279fcfe5c394b9b5cff787169cff5b9f2d3031..2d4a4a0f171ed7f97252efb99b7a55758720fdf5 100644 --- a/src/caosdb/apiutils.py +++ b/src/caosdb/apiutils.py @@ -244,6 +244,8 @@ class CaosDBPythonEntity(object): return (val, False) elif pr[0:4] == "LIST": return self._type_converted_list(val, pr) + elif isinstance(val, Entity): + return (convert_to_python_object(val), False) else: return (int(val), True) diff --git a/unittests/test_property.py b/unittests/test_property.py index 8b2deeb4b06cfbf3d42881201307a1e2122124e3..752ee01f0eafef14dbffd1e62c99d1c816c45d05 100644 --- a/unittests/test_property.py +++ b/unittests/test_property.py @@ -84,3 +84,8 @@ def test_get_property_with_entity(): p = Property(id=1234) r.add_property(id=1234, value="bla") assert r.get_property(p).value == "bla" + + +def test_selected_reference_list(): + assert len(testrecord.get_property("Conductor").value) == 1 + assert isinstance(testrecord.get_property("Conductor").value[0], Entity) diff --git a/unittests/test_record.xml b/unittests/test_record.xml index e961bdc6b88eb8e62b92696b52d7ad6a2dbf8089..018c747c11027a2c3996c65d1deab1d18514e17b 100644 --- a/unittests/test_record.xml +++ b/unittests/test_record.xml @@ -328,4 +328,10 @@ <Value>45531</Value> <Value>45532</Value> </Property> + <Property datatype="LIST<Person>" description="DESCRIBE ME!" id="1634561234" importance="FIX" name="Conductor"> + <Value> + <Record id="23456543"> + </Record> + </Value> + </Property> </Record> diff --git a/unittests/test_utils.py b/unittests/test_utils.py index f308445ed1a06331a54ebf67411dc154836557ca..42d18ba06eb7516bb318de54cb537f548cfe9081 100644 --- a/unittests/test_utils.py +++ b/unittests/test_utils.py @@ -24,7 +24,6 @@ """Tests for caosdb.common.utils.""" from __future__ import unicode_literals from lxml.etree import Element -from nose.tools import assert_equals as eq from caosdb.common.utils import xml2str @@ -32,4 +31,4 @@ def test_xml2str(): name = 'Björn' element = Element(name) serialized = xml2str(element) - eq(serialized, "<Björn/>\n") + assert serialized == "<Björn/>\n"