|
| 1 | +import filecmp |
| 2 | +from pathlib import Path |
| 3 | + |
| 4 | +from cwlupgrader.main import load_cwl_document, main, upgrade_document |
| 5 | +import pytest |
| 6 | +import logging |
| 7 | +from .util import get_data |
| 8 | +import re |
| 9 | + |
| 10 | +def test_import_parent_directory(tmp_path: Path, caplog: pytest.LogCaptureFixture) -> None: |
| 11 | + """Confirm that $import to a superior directory still preserves the directory structure.""" |
| 12 | + caplog.set_level(logging.WARN) |
| 13 | + out_dir = tmp_path/"out" |
| 14 | + out_dir.mkdir() |
| 15 | + doc = load_cwl_document(get_data("testdata/v1.0/subdir/params.cwl")) |
| 16 | + upgraded = upgrade_document(doc, out_dir, out_dir, "v1.1") |
| 17 | + expected = load_cwl_document(get_data("testdata/v1.1/subdir/params.cwl")) |
| 18 | + assert upgraded == expected |
| 19 | + assert len(caplog.records) == 1 |
| 20 | + assert re.search(re.escape(f"Writing file, '{tmp_path}/params_inc.yml', outside of the output directory, '{out_dir}'."), caplog.records[0].getMessage()) |
| 21 | + |
| 22 | +def test_import_parent_directory_safe(tmp_path: Path, caplog: pytest.LogCaptureFixture) -> None: |
| 23 | + """Confirm no warning when $import to a superior directory (but still in the current working directory) still preserves the directory structure.""" |
| 24 | + caplog.set_level(logging.WARN) |
| 25 | + out_dir = tmp_path/"out" |
| 26 | + out_dir.mkdir() |
| 27 | + doc = load_cwl_document(get_data("testdata/v1.0/subdir/params.cwl")) |
| 28 | + upgraded = upgrade_document(doc, out_dir, tmp_path, "v1.1") |
| 29 | + expected = load_cwl_document(get_data("testdata/v1.1/subdir/params.cwl")) |
| 30 | + assert upgraded == expected |
| 31 | + assert len(caplog.records) == 0 |
0 commit comments