mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-10 23:10:42 +01:00
* objects: migrate remote status to objects.status * data_cloud: use objects.status * objects: migrate remote._process to objects.transfer * data_cloud: use objects.transfer * objects: handle memfs staging objects in transfer * fetch/import: use unified transfer() * update get_remote and transfer exception usage * update tests * objects.transfer: use src ODB verify rules after xfer * odb: move index from remote into odb * objects.transfer: skip src status check when possible * update tests * remove dvc.remote * odb.index: migrate to diskcache * objects: fix status/transfer optimization * update index usage * state: remove dead sqlite related code * update cloud tests * drop unnecessary remove in tests * use abstract base class in odb index * status: load trees from local cache instead of remote odb when possible * handle status when dir cache is explicitly removed
50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
from unittest import mock
|
|
|
|
import pytest
|
|
|
|
import dvc.objects.db.slow_link_detection
|
|
from dvc.objects.db.slow_link_detection import slow_link_guard
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def timeout_immediately(monkeypatch):
|
|
monkeypatch.setattr(
|
|
dvc.objects.db.slow_link_detection, "timeout_seconds", 0.0
|
|
)
|
|
|
|
|
|
@pytest.fixture
|
|
def make_remote():
|
|
def _make_remote(cache_type=None, should_warn=True):
|
|
remote = mock.Mock()
|
|
remote.cache_types = cache_type
|
|
remote.slow_link_warning = should_warn
|
|
return remote
|
|
|
|
return _make_remote
|
|
|
|
|
|
def test_show_warning_once(caplog, make_remote):
|
|
remote = make_remote()
|
|
slow_link_guard(lambda x: None)(remote)
|
|
slow_link_guard(lambda x: None)(remote)
|
|
|
|
slow_link_detection = dvc.objects.db.slow_link_detection
|
|
message = slow_link_detection.message # noqa, pylint: disable=no-member
|
|
assert len(caplog.records) == 1
|
|
assert caplog.records[0].message == message
|
|
|
|
|
|
def test_dont_warn_when_cache_type_is_set(caplog, make_remote):
|
|
remote = make_remote(cache_type="copy")
|
|
slow_link_guard(lambda x: None)(remote)
|
|
|
|
assert len(caplog.records) == 0
|
|
|
|
|
|
def test_dont_warn_when_warning_is_disabled(caplog, make_remote):
|
|
remote = make_remote(should_warn=False)
|
|
slow_link_guard(lambda x: None)(remote)
|
|
|
|
assert len(caplog.records) == 0
|