diff --git a/src/caosadvancedtools/read_md_header.py b/src/caosadvancedtools/read_md_header.py index 78c01b3c0b7529957b759210f1110674b0edeff1..7ff7d6b94a02084666d8f570d8d9e3fcf6ee4bd3 100644 --- a/src/caosadvancedtools/read_md_header.py +++ b/src/caosadvancedtools/read_md_header.py @@ -224,8 +224,14 @@ def reference_data_files(entity, header, prefix=""): def get_data_glob(header): + if "data" in header: + name = "data" + elif "results" in header: + name = "results" + else: + raise Exception("no suitable header fields") globs = [] - for el in header["data"]: + for el in header[name]: if isinstance(el, dict) and "filename" in el: globs.append(el["filename"]) else: diff --git a/unittests/test_read_md_header.py b/unittests/test_read_md_header.py new file mode 100644 index 0000000000000000000000000000000000000000..ab4ba21774b816d446ae806f8e677d4590e620b9 --- /dev/null +++ b/unittests/test_read_md_header.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python +# encoding: utf-8 +# +# ** header v3.0 +# This file is a part of the CaosDB Project. +# +# Copyright (C) 2019 Henrik tom Wörden +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# ** end header +import os +import unittest +from copy import deepcopy +from tempfile import NamedTemporaryFile + +import caosdb as db +from caosadvancedtools.read_md_header import get_data_glob, get_header + + +def to_file(string): + f = NamedTemporaryFile(mode="w", delete=False) + f.write(string) + f.close() + + return f.name + + +class ReadHeaderTest(unittest.TestCase): + def setUp(self): + pass + + def tearDown(self): + pass + + def test_hash(self): + file_content = """ +--- +data: + - results/** +... +""" + header = get_header(to_file(file_content))[2] + assert get_data_glob(header)[0] == "results/**"