From 6ad33d2d0abe1cec2c19d1e1d14a8b81c3a14c43 Mon Sep 17 00:00:00 2001 From: Michał Górny Date: Mon, 31 Aug 2020 19:05:34 +0200 Subject: tests: Mark module-scope test dirs read-only MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- tests/testutil.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'tests/testutil.py') diff --git a/tests/testutil.py b/tests/testutil.py index 092a4d2..bde84f7 100644 --- a/tests/testutil.py +++ b/tests/testutil.py @@ -11,6 +11,7 @@ import os import os.path import random import shutil +import stat import tempfile import threading import unittest @@ -21,6 +22,17 @@ from http.server import HTTPServer, BaseHTTPRequestHandler from urllib.parse import urlparse, parse_qs +def disallow_writes(path): + """Mark path non-writable, recursively""" + for dirpath, dirs, files in os.walk(path, topdown=False): + for f in files + dirs: + st = os.lstat(os.path.join(dirpath, f)) + if not stat.S_ISLNK(st.st_mode): + os.chmod(os.path.join(dirpath, f), + st.st_mode & ~0o222) + os.chmod(path, 0o555) + + class LoggingTestCase(unittest.TestCase): def setUp(self): self.log = io.StringIO() -- cgit v1.2.3