Files
dvc/tests/unit/test_updater.py
T
Casper da Costa-Luis 2bb7257a06 lint: isort pre-commit & misc improvements (#3749)
* test: clean flake8 config root clutter

* test: pre-commit: add isort

Compatible with black (see https://github.com/timothycrosley/isort/issues/694)

* lint: reorder imports

* lint: more complex imports

* lint: fix deepsource

* config: isort: add first party dvc

* tests: restyled: add isort

* temp commit to revert before merge

* Revert "temp commit to revert before merge"

This reverts commit 11db0fd8e95fe891597cbb9bf804480909b19e24.
2020-05-06 23:56:07 +03:00

63 lines
1.4 KiB
Python

import json
import os
import mock
import pytest
from dvc import __version__
from dvc.updater import Updater
@pytest.fixture
def updater(dvc):
return Updater(dvc.dvc_dir)
@mock.patch("requests.get")
def test_fetch(mock_get, updater):
mock_get.return_value.status_code = 200
mock_get.return_value.json.return_value = {"version": __version__}
assert not os.path.exists(updater.updater_file)
updater.fetch(detach=False)
mock_get.assert_called_once_with(Updater.URL, timeout=Updater.TIMEOUT_GET)
assert os.path.isfile(updater.updater_file)
with open(updater.updater_file, "r") as fobj:
info = json.load(fobj)
assert info["version"] == __version__
@pytest.mark.parametrize(
"latest, current, result",
[
("0.20.8", "0.21.0", False),
("0.20.8", "0.20.8", False),
("0.20.8", "0.19.0", True),
],
)
def test_is_outdated(latest, current, result, updater):
updater.latest = latest
updater.current = current
assert updater._is_outdated() == result
@pytest.mark.skipif(
os.getenv("TRAVIS_EVENT_TYPE") != "cron",
reason="Only run on travis CRON to avoid generating too much logs",
)
@mock.patch("dvc.updater.Updater._check")
def test_check(mock_check, updater, monkeypatch):
monkeypatch.delenv("CI", None)
monkeypatch.setenv("DVC_TEST", False)
updater.check()
updater.check()
updater.check()
assert mock_check.call_count == 3