diff --git a/.docker/Dockerfile b/.docker/Dockerfile index 8e18096490632372d589749867c41e2244a67c11..dd4f3d258443dc1f8b2bacb8d535780e8e37e5e8 100644 --- a/.docker/Dockerfile +++ b/.docker/Dockerfile @@ -7,8 +7,10 @@ RUN apt-get update && \ python3-autopep8 \ python3-pip \ python3-pytest \ + python3-sphinx \ tox \ -y +RUN pip3 install recommonmark sphinx-rtd-theme COPY .docker/wait-for-it.sh /wait-for-it.sh ARG PYLIB ADD https://gitlab.indiscale.com/api/v4/projects/97/repository/commits/${PYLIB} \ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 67415c1b3a7da52e3179bec8463cd69ac3c667aa..8840e613f1e1eb86f30779b8b3535e2ff97ad0cc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -296,8 +296,9 @@ style: pages_prepare: &pages_prepare tags: [ cached-dind ] stage: deploy - needs: [] - image: $CI_REGISTRY/caosdb/src/caosdb-pylib/testenv:latest + needs: + - job: build-testenv + image: $CI_REGISTRY_IMAGE only: refs: - /^release-.*$/i diff --git a/CHANGELOG.md b/CHANGELOG.md index 145437d1621743716e355ddd0dea27f8a9e5b236..7c7662680c2ab1300423690157be6a656d273550 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed ### +* [#58](https://gitlab.com/caosdb/caosdb-crawler/-/issues/58) Documentation builds API docs in pipeline now. + ### Security ### ### Documentation ### diff --git a/unittests/test_parent_cfood.yml b/unittests/test_parent_cfood.yml new file mode 100644 index 0000000000000000000000000000000000000000..afb158b3315505a179c780584b5c7fbbc2aac45b --- /dev/null +++ b/unittests/test_parent_cfood.yml @@ -0,0 +1,39 @@ +--- +metadata: + crawler-version: 0.6.1 +--- +Definitions: + type: Definitions + +data: + type: Dict + match_name: '.*' + records: + Experiment: + name: "e" + Projekt: + parents: ["project"] + name: "p" + Campaign: + name: "c" + Stuff: + name: "s" + subtree: + Experiment: + type: DictElement + match: '.*' + records: + Experiment: + parents: ["Exp"] + Projekt: + parents: ["Projekt"] + Campaign: + parents: ["Cap"] + Stuff: + name: "s" + Experiment2: + type: DictElement + match: '.*' + records: + Campaign: + parents: ["Cap2"] diff --git a/unittests/test_scanner.py b/unittests/test_scanner.py index 1a1c8c1823aee5e84d35b9ddaf7dc919b56e40dc..9e6424dd32b01a0c50ddff8ae553d7409967ff6a 100644 --- a/unittests/test_scanner.py +++ b/unittests/test_scanner.py @@ -276,3 +276,32 @@ def test_variable_deletion_problems(): assert record.get_property("var2").value == "test" else: raise RuntimeError("Wrong name") + +def test_record_parents(): + """ Test the correct list of returned records by the scanner """ + + data = { + 'Experiments': {} + } + + crawler_definition = load_definition(UNITTESTDIR / "test_parent_cfood.yml") + converter_registry = create_converter_registry(crawler_definition) + + records = scan_structure_elements(DictElement(name="", value=data), crawler_definition, + converter_registry) + assert len(records)==4 + for rec in records: + if rec.name == 'e': + assert rec.parents[0].name == 'Exp' # default parent was overwritten + assert len(rec.parents)==1 + elif rec.name == 'c': + assert rec.parents[0].name == 'Cap2' # default parent was overwritten by second + # converter + assert len(rec.parents)==1 + elif rec.name == 'p': + assert rec.parents[0].name == 'Projekt' # top level set parent was overwritten + assert len(rec.parents)==1 + elif rec.name == 's': + assert rec.parents[0].name == 'Stuff' # default parent stays if no parent is given on + # lower levels + assert len(rec.parents)==1