diff --git a/radicale/tests/test_base.py b/radicale/tests/test_base.py index 00b1bd6..f64f1ae 100644 --- a/radicale/tests/test_base.py +++ b/radicale/tests/test_base.py @@ -1397,7 +1397,7 @@ class TestMultiFileSystem(BaseFileSystemTest, BaseRequestsMixIn): self.propfind("/") self.propfind("/created_by_hook/", check=404) - @pytest.mark.skipif(os.system("type flock") != 0, + @pytest.mark.skipif(not shutil.which("flock"), reason="flock command not found") def test_hook_storage_locked(self): """Verify that the storage is locked when the hook runs.""" @@ -1492,6 +1492,7 @@ class TestCustomStorageSystem(BaseFileSystemTest): test_root = BaseRequestsMixIn.test_root _report_sync_token = BaseRequestsMixIn._report_sync_token # include tests related to sync token + s = None for s in dir(BaseRequestsMixIn): if s.startswith("test_") and ("_sync_" in s or s.endswith("_sync")): locals()[s] = getattr(BaseRequestsMixIn, s) diff --git a/radicale/web/internal_data/fn.js b/radicale/web/internal_data/fn.js index d19de10..935a574 100644 --- a/radicale/web/internal_data/fn.js +++ b/radicale/web/internal_data/fn.js @@ -661,7 +661,7 @@ function CollectionsScene(user, password, collection, onerror) { return false; } - function onfileschange(e) { + function onfileschange() { try { let files = filesInput.files; if (files.length > 0) { @@ -729,8 +729,8 @@ function CollectionsScene(user, password, collection, onerror) { let href = SERVER + collection.href; url_form.href = href; url_form.textContent = href; - delete_btn.onclick = function(ev) {return ondelete(collection);}; - edit_btn.onclick = function(ev) {return onedit(collection);}; + delete_btn.onclick = function() {return ondelete(collection);}; + edit_btn.onclick = function() {return onedit(collection);}; node.classList.remove("hidden"); nodes.push(node); template.parentNode.insertBefore(node, template); @@ -925,7 +925,6 @@ function DeleteCollectionScene(user, password, collection) { let error_form = html_scene.querySelector("[data-name=error]"); let delete_btn = html_scene.querySelector("[data-name=delete]"); let cancel_btn = html_scene.querySelector("[data-name=cancel]"); - let no_btn = html_scene.querySelector("[data-name=no]"); /** @type {?number} */ let scene_index = null; /** @type {?XMLHttpRequest} */ let delete_req = null;