diff --git a/changelog/6206.improvement.rst b/changelog/6206.improvement.rst new file mode 100644 index 000000000..67d8363b3 --- /dev/null +++ b/changelog/6206.improvement.rst @@ -0,0 +1 @@ +cacheprovider: improved robustness and performance with ``cache.set``. diff --git a/src/_pytest/cacheprovider.py b/src/_pytest/cacheprovider.py index 3c60fdb33..6e53545d6 100755 --- a/src/_pytest/cacheprovider.py +++ b/src/_pytest/cacheprovider.py @@ -125,13 +125,14 @@ class Cache: return if not cache_dir_exists_already: self._ensure_supporting_files() + data = json.dumps(value, indent=2, sort_keys=True) try: f = path.open("w") except (IOError, OSError): self.warn("cache could not write path {path}", path=path) else: with f: - json.dump(value, f, indent=2, sort_keys=True) + f.write(data) def _ensure_supporting_files(self): """Create supporting files in the cache dir that are not really part of the cache."""