def test_save_new_file(tmpdir): filename = os.path.join(str(tmpdir), "savefile-success.test") with save_file_atomic(filename, "w") as f: f.write("foo\n") assert os.listdir(str(tmpdir)) == ["savefile-success.test"] with open(filename) as f: assert f.read() == "foo\n"
def blob(self, image_path, blob_digest, download_to): blob_url = urljoin(image_path, "blobs", urllib.parse.quote(blob_digest)) response = self._request(blob_url, stream=True) with save_file_atomic(download_to, "wb") as f: shutil.copyfileobj(response.raw, f)
def test_exception_new_file(tmpdir): filename = os.path.join(str(tmpdir), "savefile-exception.test") with pytest.raises(RuntimeError): with save_file_atomic(filename, "w") as f: f.write("Some junk\n") raise RuntimeError("Something goes wrong") assert os.listdir(str(tmpdir)) == []
def test_save_over_existing_file(tmpdir): filename = os.path.join(str(tmpdir), "savefile-overwrite.test") with open(filename, "w") as f: f.write("existing contents\n") with save_file_atomic(filename, "w") as f: f.write("overwritten contents\n") assert os.listdir(str(tmpdir)) == ["savefile-overwrite.test"] with open(filename) as f: assert f.read() == "overwritten contents\n"
def test_exception_existing_file(tmpdir): filename = os.path.join(str(tmpdir), "savefile-existing.test") with open(filename, "w") as f: f.write("existing contents\n") with pytest.raises(RuntimeError): with save_file_atomic(filename, "w") as f: f.write("Some junk\n") raise RuntimeError("Something goes wrong") assert os.listdir(str(tmpdir)) == ["savefile-existing.test"] with open(filename) as f: assert f.read() == "existing contents\n"
def test_attributes(tmpdir): filename = os.path.join(str(tmpdir), "savefile-attributes.test") with save_file_atomic(filename, "w") as f: assert f.real_filename == filename assert f.name != filename
def _store_etag(self, ref, etag): etagfilename = os.path.join(self._mirror_dir, "{}.etag".format(ref)) with utils.save_file_atomic(etagfilename) as etagfile: etagfile.write(etag)
def _store_etag(self, sha, etag): etagfilename = os.path.join(self._get_mirror_dir(), "{}.etag".format(sha)) with utils.save_file_atomic(etagfilename) as etagfile: etagfile.write(etag)
def _save_manifest(self, text, path): manifest_file = os.path.join(path, self.digest + ".manifest.json") with save_file_atomic(manifest_file, "wb") as f: f.write(text.encode("utf-8"))
def _save_manifest(self, text): manifest_file = os.path.join(self.get_mirror_directory(), self.digest + '.manifest.json') with save_file_atomic(manifest_file, 'wb') as f: f.write(text.encode('utf-8'))