summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/fs.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/fs.py b/test/fs.py
index 8d830c48..0821b117 100644
--- a/test/fs.py
+++ b/test/fs.py
@@ -1403,6 +1403,19 @@ def test(binary, quic=False):
# A pane address the session has not is refused in words, exit
# 1, no pane made for a file of that name; one it has is looked
# at. A name with a newline is said in words, not an error name.
+ # A new name in a directory there but not writable: refused now,
+ # not a pane that only fails at Save.
+ shut = root / 'shut-dir'
+ shut.mkdir()
+ shut.chmod(0o500)
+ try:
+ refused = subprocess.run([binary, 'shut-dir/new.txt'], cwd=root, env=env,
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=10)
+ assert refused.returncode == 1, refused
+ assert b'may not be read or written' in refused.stderr, refused.stderr
+ assert serials() == before, (serials(), before)
+ finally:
+ shut.chmod(0o755)
for word, said in (('@p999:1', b'pardes: @p999:1: this session has no such pane'),
('two\nlines.txt', b'a file name is one line')):
refused = subprocess.run([binary, word], cwd=root, env=env,