diff --git a/src/caoscrawler/scanner.py b/src/caoscrawler/scanner.py index bc2924dc41f6835c07b8a21914dfeb86919cdc96..cdf2b6218e1adcbc32848ecb4075a8c46f194e0b 100644 --- a/src/caoscrawler/scanner.py +++ b/src/caoscrawler/scanner.py @@ -61,6 +61,8 @@ from .stores import Store, GeneralStore, RecordStore from .structure_elements import StructureElement, Directory, NoneElement from .version import check_cfood_version +from caosdb.high_level_api import convert_to_python_object + from .debug.debug_tree import (DebugTreeStructureElement, DebugTreeConverter, DebugTreeVariable) @@ -437,9 +439,12 @@ def store_to_tree(store: Store): res: list[DebugTreeVariable] = list() copied = store.get_dict_copied() for name, value in store.get_storage().items(): + converted_value = value + if isinstance(value, db.Entity): + converted_value = convert_to_python_object(value).serialize(True) res.append( DebugTreeVariable( - name, value, + name, converted_value, copied[name], store.get_internal_id(name))) return res diff --git a/unittests/debug_tree_test.py b/unittests/debug_tree_test.py index 5b7bb9dceedec4b8fd6a4aadb05d37f65844ab37..6a2676d207c63aa950d8069f27ba48daa4333345 100644 --- a/unittests/debug_tree_test.py +++ b/unittests/debug_tree_test.py @@ -48,7 +48,14 @@ from caosdb.apiutils import compare_entities import pytest from pytest import raises -from caoscrawler.scanner import scanner +from caoscrawler.scanner import scanner, scan_directory + +def rfp(*pathcomponents): + """ + Return full path. + Shorthand convenience function. + """ + return join(dirname(__file__), *pathcomponents) def test_scanner(): @@ -59,7 +66,13 @@ def test_scanner(): crawled_data, debug_tree = scanner([d], [c]) print(yaml.dump(debug_tree)) - assert False + # assert False def test_scanner_directories(): - d = Directory("2023-02-07_ProjectName", "/") + crawled_data, debug_tree = scan_directory( + rfp("test_directories", "examples_article"), rfp("scifolder_cfood.yml")) + + print(crawled_data) + print(yaml.dump(debug_tree)) + + assert False