Skip to content

Commit b59bc2c

Browse files
committed
Add a test overriding the IngestReader class attributes to set the
prescribed values in the XSLT transformation
1 parent 8950735 commit b59bc2c

1 file changed

Lines changed: 57 additions & 0 deletions

File tree

tests/test_06_ingest.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -692,6 +692,63 @@ def test_ingest_error_searcherr(client, investigation, schemadir, case):
692692
logger.info("Raised %s: %s", exc.type.__name__, exc.value)
693693

694694

695+
classattr_metadata = NamedBytesIO("""<?xml version='1.0' encoding='UTF-8'?>
696+
<icatingest version="1.1">
697+
<head>
698+
<date>2024-10-11T10:51:26+02:00</date>
699+
<generator>metadata-writer 0.27a</generator>
700+
</head>
701+
<data>
702+
<dataset id="Dataset_1">
703+
<name>testingest_classattr_1</name>
704+
<description>Auxiliary data</description>
705+
<startDate>2022-02-03T15:40:12+01:00</startDate>
706+
<endDate>2022-02-03T17:04:22+01:00</endDate>
707+
</dataset>
708+
</data>
709+
</icatingest>
710+
""".encode("utf8"), "classattr_metadata")
711+
classattr_cases = [
712+
Case(
713+
data = ["testingest_classattr_1"],
714+
metadata = classattr_metadata,
715+
checks = {
716+
"testingest_classattr_1": [
717+
("SELECT ds.complete FROM Dataset ds WHERE ds.id = %d",
718+
True),
719+
("SELECT ds.type.name FROM Dataset ds WHERE ds.id = %d",
720+
"other"),
721+
],
722+
},
723+
marks = (),
724+
),
725+
]
726+
@pytest.mark.parametrize("case", [
727+
pytest.param(c, id=c.metadata.name, marks=c.marks) for c in classattr_cases
728+
])
729+
def test_ingest_classattr(monkeypatch, client, investigation, schemadir, case):
730+
"""Test overriding prescribed values set in IngestReader class attributes.
731+
"""
732+
monkeypatch.setattr(IngestReader, "Dataset_complete", "true")
733+
monkeypatch.setattr(IngestReader, "DatasetType_name", "other")
734+
datasets = []
735+
for name in case.data:
736+
datasets.append(client.new("Dataset", name=name))
737+
reader = IngestReader(client, case.metadata, investigation)
738+
reader.ingest(datasets, dry_run=True, update_ds=True)
739+
for ds in datasets:
740+
ds.create()
741+
reader.ingest(datasets)
742+
for name in case.checks.keys():
743+
query = Query(client, "Dataset", conditions={
744+
"name": "= '%s'" % name,
745+
"investigation.id": "= %d" % investigation.id,
746+
})
747+
ds = client.assertedSearch(query)[0]
748+
for query, res in case.checks[name]:
749+
assert client.assertedSearch(query % ds.id)[0] == res
750+
751+
695752
customcases = [
696753
Case(
697754
data = ["testingest_custom_icatingest_1"],

0 commit comments

Comments
 (0)