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

fix(yaml-models): corrected output labels for the yaml model parser

parent a76cf9a5
No related branches found
No related tags found
2 merge requests!128MNT: Added a warning when column metadata is not configured, and a better...,!118Test to confirm (or reject) #71
...@@ -145,8 +145,10 @@ class DataModel(dict): ...@@ -145,8 +145,10 @@ class DataModel(dict):
else: else:
query = db.Query(f"FIND ENTITY with id={ent.id}") query = db.Query(f"FIND ENTITY with id={ent.id}")
ref = query.execute(unique=True) ref = query.execute(unique=True)
diff = (describe_diff(*compare_entities(ent, ref diff = (describe_diff(*compare_entities(ent, ref),
), name=ent.name)) name=ent.name,
label_old="version from the yaml file",
label_new="version from LinkAhead"))
if diff != "": if diff != "":
if verbose: if verbose:
......
...@@ -21,7 +21,11 @@ from datetime import date ...@@ -21,7 +21,11 @@ from datetime import date
from tempfile import NamedTemporaryFile from tempfile import NamedTemporaryFile
from pytest import raises, mark from pytest import raises, mark
from unittest.mock import Mock
import linkahead as db import linkahead as db
import caosadvancedtools
from caosadvancedtools.models.parser import (TwiceDefinedException, from caosadvancedtools.models.parser import (TwiceDefinedException,
YamlDefinitionError, YamlDefinitionError,
parse_model_from_string, parse_model_from_string,
...@@ -659,3 +663,43 @@ Simulation: ...@@ -659,3 +663,43 @@ Simulation:
assert model["Simulation"].role == "Record" assert model["Simulation"].role == "Record"
assert model["Simulation"].name == "Simulation" assert model["Simulation"].name == "Simulation"
assert model["Simulation"].get_property("parameter").value == 26 assert model["Simulation"].get_property("parameter").value == 26
def test_sync_output(capfd):
model = parse_model_from_string("""
RT:
obligatory_properties:
identifier:
datatype: TEXT
""")
existing_entities = [db.RecordType(name="RT", id=25).add_property(name="identifier",
datatype="INTEGER",
importance="OBLIGATORY",
id=24),
db.Property(name="identifier", datatype="INTEGER", id=24)]
def get_existing_entities(ent_cont):
return existing_entities
class MockQuery:
def __init__(self, q):
self.q = q
def execute(self, unique=True):
id = int(self.q.split("=")[1])
for existing_ent in existing_entities:
if existing_ent.id == id:
return existing_ent
return None
model.get_existing_entities = get_existing_entities
caosadvancedtools.models.parser.db.Query = MockQuery
caosadvancedtools.models.parser.db.Container.update = Mock()
model.sync_data_model(True, True)
assert caosadvancedtools.models.parser.db.Container.update.called
output, err = capfd.readouterr()
print(output)
assert "version from the yaml file: TEXT" in output
assert "version from LinkAhead: INTEGER" in output
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment