mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-01 23:08:43 +01:00
Stage: create: reset repo after new stage creation (#3349)
This commit is contained in:
@@ -24,6 +24,7 @@ def locked(f):
|
||||
@wraps(f)
|
||||
def wrapper(repo, *args, **kwargs):
|
||||
with repo.lock, repo.state:
|
||||
repo._reset()
|
||||
ret = f(repo, *args, **kwargs)
|
||||
# Our graph cache is no longer valid after we release the repo.lock
|
||||
repo._reset()
|
||||
|
||||
@@ -126,6 +126,7 @@ def _create_stages(repo, targets, fname, pbar=None):
|
||||
stage = Stage.create(
|
||||
repo, outs=[out], accompany_outs=True, fname=fname
|
||||
)
|
||||
repo._reset()
|
||||
|
||||
if not stage:
|
||||
if pbar is not None:
|
||||
|
||||
@@ -655,3 +655,10 @@ def test_add_from_data_dir(tmp_dir, scm, dvc):
|
||||
"tracked output: 'dir'.\n"
|
||||
"To include '{out}' in 'dir', run 'dvc commit dir.dvc'"
|
||||
).format(out=os.path.join("dir", "file2"))
|
||||
|
||||
|
||||
def test_not_raises_on_re_add(tmp_dir, dvc):
|
||||
tmp_dir.dvc_gen("file", "file content")
|
||||
|
||||
tmp_dir.gen({"file2": "file2 content", "file": "modified file"})
|
||||
dvc.add(["file2", "file"])
|
||||
|
||||
@@ -2,6 +2,8 @@ import os
|
||||
|
||||
import pytest
|
||||
|
||||
from dvc.repo import locked
|
||||
|
||||
|
||||
def test_is_dvc_internal(dvc):
|
||||
assert dvc.is_dvc_internal(os.path.join("path", "to", ".dvc", "file"))
|
||||
@@ -49,3 +51,18 @@ def test_used_cache(tmp_dir, dvc, path):
|
||||
used_cache._items == expected._items
|
||||
and used_cache.external == expected.external
|
||||
)
|
||||
|
||||
|
||||
def test_locked(mocker):
|
||||
repo = mocker.MagicMock()
|
||||
repo.method = locked(repo.method)
|
||||
|
||||
args = {}
|
||||
kwargs = {}
|
||||
repo.method(repo, args, kwargs)
|
||||
|
||||
assert repo.method_calls == [
|
||||
mocker.call._reset(),
|
||||
mocker.call.method(repo, args, kwargs),
|
||||
mocker.call._reset(),
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user