Skip to content

Commit dc9e94d

Browse files
committed
made dry_run effective
1 parent 4f2f339 commit dc9e94d

File tree

4 files changed

+40
-0
lines changed

4 files changed

+40
-0
lines changed

tests/test_cli.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from click.testing import CliRunner
77

88
from zappend.cli import zappend
9+
from zappend.fsutil.fileobj import FileObj
910
from .helpers import clear_memory_fs
1011
from .helpers import make_test_dataset
1112

@@ -60,6 +61,7 @@ def test_no_slices(self):
6061
result = runner.invoke(zappend, [])
6162
self.assertEqual(0, result.exit_code)
6263
self.assertEqual("No slice datasets given.\n", result.output)
64+
self.assertFalse(FileObj("memory://target.zarr").exists())
6365

6466
def test_some_slices_and_target(self):
6567
make_test_dataset(uri="memory://slice-1.zarr")
@@ -78,6 +80,27 @@ def test_some_slices_and_target(self):
7880
])
7981
self.assertEqual("", result.output)
8082
self.assertEqual(0, result.exit_code)
83+
self.assertTrue(FileObj("memory://target.zarr").exists())
84+
85+
def test_some_slices_and_target_dry_run(self):
86+
make_test_dataset(uri="memory://slice-1.zarr")
87+
make_test_dataset(uri="memory://slice-2.zarr")
88+
make_test_dataset(uri="memory://slice-3.zarr")
89+
90+
runner = CliRunner()
91+
# noinspection PyTypeChecker
92+
result = runner.invoke(zappend,
93+
[
94+
"--target",
95+
"memory://target.zarr",
96+
"--dry-run",
97+
"memory://slice-1.zarr",
98+
"memory://slice-2.zarr",
99+
"memory://slice-3.zarr",
100+
])
101+
self.assertEqual("", result.output)
102+
self.assertEqual(0, result.exit_code)
103+
self.assertFalse(FileObj("memory://target.zarr").exists())
81104

82105
def test_some_slices_and_no_target(self):
83106
make_test_dataset(uri="memory://slice-1.zarr")
@@ -95,3 +118,4 @@ def test_some_slices_and_no_target(self):
95118
self.assertEqual(1, result.exit_code)
96119
self.assertEqual("Error: Missing 'target_uri' in configuration\n",
97120
result.output)
121+
self.assertFalse(FileObj("memory://target.zarr").exists())

tests/test_context.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,10 @@ def test_temp_dir(self):
6060
ctx = Context({"target_uri": "memory://target.zarr"})
6161
self.assertIsInstance(ctx.temp_dir, FileObj)
6262
self.assertTrue(ctx.temp_dir.exists())
63+
64+
def test_dry_run(self):
65+
ctx = Context({"target_uri": "memory://target.zarr"})
66+
self.assertEqual(False, ctx.dry_run)
67+
ctx = Context({"target_uri": "memory://target.zarr",
68+
"dry_run": True})
69+
self.assertEqual(True, ctx.dry_run)

zappend/context.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,3 +100,7 @@ def slice_polling(self) -> tuple[float, float] | tuple[None, None]:
100100
@property
101101
def temp_dir(self) -> FileObj:
102102
return self._temp_dir
103+
104+
@property
105+
def dry_run(self) -> bool:
106+
return self._config.get("dry_run", False)

zappend/processor.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ def create_target_from_slice(ctx: Context,
7878
rollback_cb: RollbackCallback):
7979
logger.info(f"Creating target dataset")
8080
target_ds = tailor_target_dataset(slice_ds, ctx.target_metadata)
81+
if ctx.dry_run:
82+
return
8183
target_dir = ctx.target_dir
8284
# TODO: adjust global attributes dependent on append_dim,
8385
# e.g., time coverage
@@ -103,6 +105,9 @@ def update_target_from_slice(ctx: Context,
103105
ctx.target_metadata,
104106
append_dim_name)
105107

108+
if ctx.dry_run:
109+
return
110+
106111
# TODO: adjust global attributes dependent on append_dim,
107112
# e.g., time coverage
108113

0 commit comments

Comments
 (0)