Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 0 additions & 89 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,8 @@

import mockssh
import pytest
from git import Repo
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For some reason, removing this import causes test_get_from_non_dvc_master to fail, hence additional caplog.at_level there. I was unable to invesitage it in reasonable amount of time, so leaving this comment and creating issue.

from git.exc import GitCommandNotFound

from dvc.remote.ssh.connection import SSHConnection
from dvc.repo import Repo as DvcRepo
from .basic_env import TestDirFixture, TestDvcGitFixture, TestGitFixture
from .dir_helpers import * # noqa


Expand All @@ -31,49 +27,6 @@ def reset_loglevel(request, caplog):
yield


# Wrap class like fixture as pytest-like one to avoid code duplication
@pytest.fixture
def repo_dir():
old_fixture = TestDirFixture()
old_fixture.setUp()
try:
yield old_fixture
finally:
old_fixture.tearDown()


# NOTE: this duplicates code from GitFixture,
# would fix itself once class-based fixtures are removed
@pytest.fixture
def git(repo_dir):
# NOTE: handles EAGAIN error on BSD systems (osx in our case).
# Otherwise when running tests you might get this exception:
#
# GitCommandNotFound: Cmd('git') not found due to:
# OSError('[Errno 35] Resource temporarily unavailable')
retries = 5
while True:
try:
git = Repo.init()
break
except GitCommandNotFound:
retries -= 1
if not retries:
raise

try:
git.index.add([repo_dir.CODE])
git.index.commit("add code")
yield git
finally:
git.close()


@pytest.fixture
def dvc_repo(repo_dir):
yield DvcRepo.init(repo_dir._root_dir, no_scm=True)


here = os.path.abspath(os.path.dirname(__file__))

user = "user"
Expand All @@ -98,51 +51,9 @@ def ssh(ssh_server):
yield SSHConnection(**ssh_server.test_creds)


@pytest.fixture
def erepo(repo_dir):
repo = TestDvcGitFixture()
repo.setUp()
try:
stage_foo = repo.dvc.add(repo.FOO)[0]
stage_bar = repo.dvc.add(repo.BAR)[0]
stage_data_dir = repo.dvc.add(repo.DATA_DIR)[0]
repo.dvc.scm.add([stage_foo.path, stage_bar.path, stage_data_dir.path])
repo.dvc.scm.commit("init repo")

repo.create("version", "master")
repo.dvc.add("version")
repo.dvc.scm.add([".gitignore", "version.dvc"])
repo.dvc.scm.commit("master")

repo.dvc.scm.checkout("branch", create_new=True)
os.unlink(os.path.join(repo.root_dir, "version"))
repo.create("version", "branch")
repo.dvc.add("version")
repo.dvc.scm.add([".gitignore", "version.dvc"])
repo.dvc.scm.commit("branch")

repo.dvc.scm.checkout("master")

repo.dvc.scm.close()
repo.git.close()

os.chdir(repo._saved_dir)
yield repo
finally:
repo.tearDown()


@pytest.fixture(scope="session", autouse=True)
def _close_pools():
from dvc.remote.pool import close_pools

yield
close_pools()


@pytest.fixture
def git_erepo():
repo = TestGitFixture()
repo.setUp()
yield repo
repo.tearDown()
7 changes: 6 additions & 1 deletion tests/func/test_get.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,12 @@ def test_get_from_non_dvc_master(tmp_dir, erepo_dir, caplog):

caplog.clear()
dst = "file_imported"
with caplog.at_level(logging.INFO, logger="dvc"):

# removing `git` import in conftest resulted in unexpected logs from
# that package, see https://github.com/iterative/dvc/issues/3167
with caplog.at_level(logging.INFO, logger="git"), caplog.at_level(
logging.INFO, logger="dvc"
):
Repo.get(fspath(erepo_dir), "some_file", out=dst, rev="branch")

assert caplog.text == ""
Expand Down