From a2e466a874502b665807f620eb8edefb37be1e8c Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Tue, 29 Sep 2026 13:45:25 -0300 Subject: A ThemeFile that cannot be read or is no theme fails its write, and a bad path says why The theme is read when the host performs the request, after the write had been answered, so a missing file or a bad theme only showed a message; and a path not ending .zon said only invalid theme path. Load failures are now the waiting write's (late, as a Save's), and the path refusal says a theme file is a .zon. Co-Authored-By: Claude Opus 5.5 --- test/fs.py | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'test') diff --git a/test/fs.py b/test/fs.py index a025ec47..8047273d 100644 --- a/test/fs.py +++ b/test/fs.py @@ -836,6 +836,15 @@ def odd_paths(binary): pass assert client.read('/index'), (where, line) client.write('/ctl', b'DumpDir\n') + # A theme file that is not there, or no theme, fails the write. + (root / 'bad.zon').write_bytes(b'.{ .nonsense = 1 }') + for line, why in ((f'ThemeFile {root}/missing.zon', 'theme file'), (f'ThemeFile {root}/bad.zon', 'theme file'), + ('ThemeFile notes.txt', 'a theme file is a .zon')): + try: + client.write('/ctl', (line + '\n').encode()) + raise AssertionError(f'{line} was taken') + except OSError as refused: + assert why in str(refused), (line, refused) def cut_writes(binary): -- cgit v1.3