From dbd982a24d2f2f6dc290553c67fa03977fd3bed9 Mon Sep 17 00:00:00 2001 From: Alexander Schlemmer <alexander@mail-schlemmer.de> Date: Fri, 11 Aug 2023 11:07:09 +0200 Subject: [PATCH] TST: added failing test for transformer feature --- unittests/test_transformers.py | 70 ++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 unittests/test_transformers.py diff --git a/unittests/test_transformers.py b/unittests/test_transformers.py new file mode 100644 index 00000000..81df2253 --- /dev/null +++ b/unittests/test_transformers.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python3 +# encoding: utf-8 +# +# This file is a part of the CaosDB Project. +# +# Copyright (C) 2023 Research Group Biomedical Physics, +# Max-Planck-Institute for Dynamics and Self-Organization Göttingen +# Alexander Schlemmer <alexander.schlemmer@ds.mpg.de> +# +# 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/>. +# + +""" +Unit test functions for the transformer feature of the scanner. + +Currently, this is under development. +See: https://gitlab.indiscale.com/caosdb/src/caosdb-crawler/-/issues/107 +""" + +from functools import partial +from pathlib import Path +from tempfile import NamedTemporaryFile +from unittest.mock import MagicMock, Mock, patch + +import caosdb as db +import pytest +import yaml +from caoscrawler.scanner import (create_converter_registry, load_definition, + scan_directory, scan_structure_elements) +from caoscrawler.structure_elements import (DictElement, DictListElement, + DictTextElement, File) +from pytest import raises + +from utils import dircheckstr as dircheck_base + +UNITTESTDIR = Path(__file__).parent + +dircheckstr = partial(dircheck_base, UNITTESTDIR / "test_directories" / "examples_article") + + + +def test_simple_transformer(): + """ + Test the correct list of returned records by the scanner using the + scifolder example from the article. + """ + + records = scan_directory(UNITTESTDIR / "test_directories" / "test_transformers", + UNITTESTDIR / "test_directories" / "test_transformers" / + "cfood.yml") + + for r in records: + assert r.get_property("Day") is not None + assert r.get_property("DayShort") is not None + assert r.get_property("Day").value != "$day_long" + assert r.get_property("DayShort").value != "$day_short" + + # breakpoint() + assert False -- GitLab