config reload: fix feedback loop — react to modified/created/moved only, not open/close (v3.12.1 spun cpu on read-opens)
This commit is contained in:
+11
-6
@@ -157,10 +157,15 @@ class TestConfigReloadRenameSafe(unittest.TestCase):
|
||||
event.dest_path = dest if dest is not None else ""
|
||||
return event
|
||||
|
||||
handler.on_any_event(evt(src=str(config))) # in-place modify
|
||||
handler.on_any_event(evt(src=str(Path(tmp) / "kroa.toml.tmp"), dest=str(config))) # atomic rename over
|
||||
self.assertEqual(len(hits), 2)
|
||||
handler.on_modified(evt(src=str(config))) # in-place modify
|
||||
handler.on_moved(evt(src=str(Path(tmp) / "kroa.toml.tmp"), dest=str(config))) # atomic rename over
|
||||
handler.on_created(evt(src=str(config))) # write-new
|
||||
self.assertEqual(len(hits), 3)
|
||||
|
||||
handler.on_any_event(evt(src=str(Path(tmp) / "other.txt"))) # unrelated file
|
||||
handler.on_any_event(evt(is_dir=True, src=str(config))) # directory event
|
||||
self.assertEqual(len(hits), 2) # neither fired
|
||||
handler.on_modified(evt(src=str(Path(tmp) / "other.txt"))) # unrelated file
|
||||
handler.on_modified(evt(is_dir=True, src=str(config))) # directory event
|
||||
self.assertEqual(len(hits), 3) # neither fired
|
||||
|
||||
# open/close of the config (our own load_config re-reads) must NOT be handled — else a reload loop.
|
||||
self.assertNotIn("on_opened", vars(ConfigFileHandler))
|
||||
self.assertNotIn("on_closed", vars(ConfigFileHandler))
|
||||
|
||||
Reference in New Issue
Block a user