Files
dvc/tests/unit/remote/test_slow_link_detection.py
T
Peter Rowlands (변기호) 3d84df930b objects: migrate remote push/pull to objects.transfer (#6308)
* 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
2021-07-20 13:30:01 +03:00

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