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