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
Branches
No related tags found
2 merge requests!57RELEASE 0.7.3,!52F refactor high level api
Pipeline #19886 failed
...@@ -26,13 +26,16 @@ ...@@ -26,13 +26,16 @@
import caosdb as db import caosdb as db
from caosdb.high_level_api import (convert_to_entity, convert_to_python_object) 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 import pytest
from lxml import etree from lxml import etree
import os import os
import tempfile import tempfile
import pickle import pickle
import sys, traceback, pdb
@pytest.fixture @pytest.fixture
def testrecord(): def testrecord():
parser = etree.XMLParser(remove_comments=True) parser = etree.XMLParser(remove_comments=True)
...@@ -104,5 +107,48 @@ def test_convert_with_references(): ...@@ -104,5 +107,48 @@ def test_convert_with_references():
r = db.Record() r = db.Record()
r.add_property(name="ref", value=r_ref) 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) 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.
Please register or to comment