test(parity): add --stop-at rsync date-form differential coverage
This commit is contained in:
@@ -844,3 +844,29 @@ class TestInfoDebugFlagParity:
|
|||||||
assert result.returncode != 0, f"{flag} must be rejected"
|
assert result.returncode != 0, f"{flag} must be rejected"
|
||||||
assert name in (result.stderr or ""), \
|
assert name in (result.stderr or ""), \
|
||||||
f"{flag} must be rejected by name, got: {result.stderr[:200]}"
|
f"{flag} must be rejected by name, got: {result.stderr[:200]}"
|
||||||
|
|
||||||
|
|
||||||
|
class TestStopAtParity:
|
||||||
|
"""#62: --stop-at accepts rsync's full date/time form."""
|
||||||
|
|
||||||
|
@requires_rsync
|
||||||
|
@pytest.mark.ci
|
||||||
|
def test_stop_at_rsync_date_forms_accepted(self, shared_server):
|
||||||
|
source = os.path.join(TEST_DATA_DIR, "qw_stop_src")
|
||||||
|
dest = os.path.join(TEST_DATA_DIR, "qw_stop_dst")
|
||||||
|
rdst = os.path.join(TEST_DATA_DIR, "qw_stop_rdst")
|
||||||
|
clean_dir(source)
|
||||||
|
with open(os.path.join(source, "a.txt"), "wb") as fh:
|
||||||
|
fh.write(b"a\n")
|
||||||
|
# rsync's documented --stop-at forms, all in the future or resolvable.
|
||||||
|
forms = ["2030-12-31T23:59", "2030/12/31T23:59", "2030-12-31", ":59", "1-30", "1"]
|
||||||
|
for form in forms:
|
||||||
|
rs = _rsync(["-a", "--stop-at=" + form, source + "/", rdst + "/"])
|
||||||
|
assert rs.returncode == 0, f"rsync rejected {form}: {rs.stderr}"
|
||||||
|
clean_dir(rdst)
|
||||||
|
clean_dir(dest)
|
||||||
|
result, _ = run_client(source, dest, flags=["--stop-at=" + form],
|
||||||
|
port=shared_server.port)
|
||||||
|
assert result.returncode == 0, (
|
||||||
|
f"--stop-at={form} must be accepted like rsync: {result.stderr[:200]}"
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user