From 348951704bf024cf6aee7baf475eb6d7cf7a4894 Mon Sep 17 00:00:00 2001 From: Alexander Schlemmer <alexander@mail-schlemmer.de> Date: Thu, 18 Nov 2021 10:53:05 +0100 Subject: [PATCH] FIX: records are now put into variable store and correctly replaced as values --- src/newcrawler/crawl.py | 5 +++-- tests/test_tool.py | 19 ++++++++++--------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/newcrawler/crawl.py b/src/newcrawler/crawl.py index 2655313c..0a3eaafa 100644 --- a/src/newcrawler/crawl.py +++ b/src/newcrawler/crawl.py @@ -270,6 +270,7 @@ class Converter(object): c_record = db.Record() records.storage[name] = c_record c_record = records.storage[name] + values.storage[name] = c_record if "parents" in record: for parent in record["parents"]: @@ -282,8 +283,8 @@ class Converter(object): continue propvalue = value - for varname, varvalue in values.storage.items(): - propvalue = propvalue.replace("$" + varname, varvalue) + if propvalue.startswith("$"): + propvalue = values[propvalue[1:]] c_record.add_property(name=key, value=propvalue) @abstractmethod diff --git a/tests/test_tool.py b/tests/test_tool.py index 35a4ae44..67269731 100755 --- a/tests/test_tool.py +++ b/tests/test_tool.py @@ -5,7 +5,7 @@ from newcrawler import Crawler from os.path import join, dirname, basename -import yaml +import caosdb as db def rfp(*pathcomponents): """ @@ -24,12 +24,7 @@ def test_crawler(): crawler = Crawler(debug=True) crawler.crawl_directory(rfp("test_directories", "examples_article"), rfp("scifolder_cfood.yml")) - - # debug_variables = dict() - # for k, v in crawler.debug_tree.items(): - # debug_variables[k] = v[0] - # print(yaml.dump(debug_variables)) - + subd = crawler.debug_tree[dircheckstr("DataAnalysis")] assert len(subd) == 2 assert len(subd[0]) == 0 @@ -43,17 +38,21 @@ def test_crawler(): assert subd[1]["Project"].get_property("date").value == "2020" assert subd[1]["Project"].get_property("identifier").value == "climate-model-predict" - assert len(subd[0]) == 2 + assert len(subd[0]) == 3 assert subd[0]["date"] == "2020" assert subd[0]["identifier"] == "climate-model-predict" + assert subd[0]["Project"].__class__ == db.Record + subd = crawler.debug_tree[dircheckstr("DataAnalysis", "2020_climate-model-predict", "2020-02-08_prediction-errors")] print(subd) - assert len(subd[0]) == 2 + assert len(subd[0]) == 4 assert subd[0]["date"] == "2020-02-08" assert subd[0]["identifier"] == "prediction-errors" + assert subd[0]["Project"].__class__ == db.Record + assert subd[0]["Measurement"].__class__ == db.Record assert len(subd[1]) == 2 @@ -67,3 +66,5 @@ def test_crawler(): assert subd[1]["Measurement"].get_property("date").value == "2020-02-08" assert subd[1]["Measurement"].get_property("identifier").value == "prediction-errors" assert subd[1]["Measurement"].get_property("project").value != "$Project" + assert subd[1]["Measurement"].get_property("project").value.__class__ == db.Record + assert subd[1]["Measurement"].get_property("project").value == subd[0]["Project"] -- GitLab