Skip to content
Snippets Groups Projects
Commit c752e975 authored by Alexander Schlemmer's avatar Alexander Schlemmer
Browse files

TST: more tests for the high level python api

parent 6901905e
No related branches found
No related tags found
2 merge requests!57RELEASE 0.7.3,!52F refactor high level api
Pipeline #19886 failed
......@@ -26,13 +26,16 @@
import caosdb as db
from caosdb.high_level_api import (convert_to_entity, convert_to_python_object)
from caosdb.high_level_api import (CaosDBPythonUnresolvedParent,)
from caosdb.high_level_api import (CaosDBPythonUnresolvedParent,
CaosDBPythonUnresolvedReference)
import pytest
from lxml import etree
import os
import tempfile
import pickle
import sys, traceback, pdb
@pytest.fixture
def testrecord():
parser = etree.XMLParser(remove_comments=True)
......@@ -104,5 +107,48 @@ def test_convert_with_references():
r = db.Record()
r.add_property(name="ref", value=r_ref)
# try:
obj = convert_to_python_object(r)
# except:
# extype, value, tb = sys.exc_info()
# traceback.print_exc()
# pdb.post_mortem(tb)
assert obj.ref.a == 42
# With datatype:
r_ref = db.Record()
r_ref.add_parent("bla")
r_ref.add_property(name="a", value=42)
r = db.Record()
r.add_property(name="ref", value=r_ref)
obj = convert_to_python_object(r)
assert obj.ref.a == 42
# Parent does not automatically lead to a datatype:
assert obj.get_property_metadata("ref").datatype is None
assert obj.ref.has_parent("bla") is True
# Add datatype explicitely:
r_ref = db.Record()
r_ref.add_parent("bla")
r_ref.add_property(name="a", value=42)
r = db.Record()
r.add_property(name="ref", value=r_ref, datatype="bla")
obj = convert_to_python_object(r)
assert obj.ref.a == 42
# Parent does not automatically lead to a datatype:
assert obj.get_property_metadata("ref").datatype is "bla"
assert obj.ref.has_parent("bla") is True
# Unresolved Reference:
r = db.Record()
r.add_property(name="ref", value=27, datatype="bla")
obj = convert_to_python_object(r)
breakpoint()
# Parent does not automatically lead to a datatype:
assert obj.get_property_metadata("ref").datatype is "bla"
assert isinstance(obj.ref, CaosDBPythonUnresolvedReference)
assert obj.ref.id == 27
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment