mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-01 23:08:43 +01:00
remote: local: protect uploaded files (#3858)
This commit is contained in:
@@ -298,6 +298,8 @@ class LocalRemote(BaseRemote):
|
||||
copyfile(
|
||||
from_file, tmp_file, name=name, no_progress_bar=no_progress_bar
|
||||
)
|
||||
|
||||
self.protect(tmp_file)
|
||||
os.rename(tmp_file, to_info)
|
||||
|
||||
def _download(
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import errno
|
||||
import os
|
||||
import stat
|
||||
|
||||
import configobj
|
||||
import pytest
|
||||
@@ -355,3 +356,15 @@ def test_remote_default(dvc):
|
||||
assert remote_name not in config.get("remote", {})
|
||||
local_config = dvc.config.load_one("local")
|
||||
assert local_config["core"]["remote"] == new_name
|
||||
|
||||
|
||||
def test_protect_local_remote(tmp_dir, dvc, setup_remote):
|
||||
setup_remote(dvc, name="upstream")
|
||||
(stage,) = tmp_dir.dvc_gen("file", "file content")
|
||||
|
||||
dvc.push()
|
||||
remote = dvc.cloud.get_remote("upstream")
|
||||
remote_cache_file = remote.checksum_to_path_info(stage.outs[0].checksum)
|
||||
|
||||
assert os.path.exists(remote_cache_file)
|
||||
assert stat.S_IMODE(os.stat(remote_cache_file).st_mode) == 0o444
|
||||
|
||||
Reference in New Issue
Block a user