test: clean up test dirs (#1904)

* test: clean up test dirs

Closes #1770. Partially does #1888.

* dvc: close anything opened

* test: finalize git repo explicitly to remove test dir later

This was previously an issue on Windows.
This commit is contained in:
Alexander Schepanovski
2019-04-25 14:55:39 +03:00
committed by Ruslan Kuprieiev
parent c0104e2e61
commit 7478e7d4b0
9 changed files with 91 additions and 69 deletions
+2 -3
View File
@@ -126,9 +126,8 @@ class CheckoutBase(TestDvc):
self.dvc.scm.commit("adding " + fname)
def read_ignored(self):
return list(
map(lambda s: s.strip("\n"), open(self.GIT_IGNORE).readlines())
)
with open(self.GIT_IGNORE) as f:
return [s.strip("\n") for s in f.readlines()]
def outs_info(self, stage):
FileInfo = collections.namedtuple("FileInfo", "path inode")
+2 -1
View File
@@ -41,7 +41,8 @@ class TestDefaultOutput(TestDvc):
ret = main(["import", tmpfile])
self.assertEqual(ret, 0)
self.assertTrue(os.path.exists(filename))
self.assertEqual(open(filename).read(), "content")
with open(filename) as fd:
self.assertEqual(fd.read(), "content")
class TestFailedImportMessage(TestDvc):
+16 -8
View File
@@ -381,7 +381,8 @@ class TestRunUnprotectOutsCopy(TestDvc):
)
self.assertEqual(ret, 0)
self.assertFalse(os.access(self.FOO, os.W_OK))
self.assertEqual(open(self.FOO, "r").read(), "foo")
with open(self.FOO, "r") as fd:
self.assertEqual(fd.read(), "foo")
ret = main(
[
@@ -399,7 +400,8 @@ class TestRunUnprotectOutsCopy(TestDvc):
)
self.assertEqual(ret, 0)
self.assertFalse(os.access(self.FOO, os.W_OK))
self.assertEqual(open(self.FOO, "r").read(), "foo")
with open(self.FOO, "r") as fd:
self.assertEqual(fd.read(), "foo")
class TestRunUnprotectOutsSymlink(TestDvc):
@@ -432,7 +434,8 @@ class TestRunUnprotectOutsSymlink(TestDvc):
self.assertEqual(ret, 0)
self.assertFalse(os.access(self.FOO, os.W_OK))
self.assertTrue(System.is_symlink(self.FOO))
self.assertEqual(open(self.FOO, "r").read(), "foo")
with open(self.FOO, "r") as fd:
self.assertEqual(fd.read(), "foo")
ret = main(
[
@@ -451,7 +454,8 @@ class TestRunUnprotectOutsSymlink(TestDvc):
self.assertEqual(ret, 0)
self.assertFalse(os.access(self.FOO, os.W_OK))
self.assertTrue(System.is_symlink(self.FOO))
self.assertEqual(open(self.FOO, "r").read(), "foo")
with open(self.FOO, "r") as fd:
self.assertEqual(fd.read(), "foo")
class TestRunUnprotectOutsHardlink(TestDvc):
@@ -484,7 +488,8 @@ class TestRunUnprotectOutsHardlink(TestDvc):
self.assertEqual(ret, 0)
self.assertFalse(os.access(self.FOO, os.W_OK))
self.assertTrue(System.is_hardlink(self.FOO))
self.assertEqual(open(self.FOO, "r").read(), "foo")
with open(self.FOO, "r") as fd:
self.assertEqual(fd.read(), "foo")
ret = main(
[
@@ -503,7 +508,8 @@ class TestRunUnprotectOutsHardlink(TestDvc):
self.assertEqual(ret, 0)
self.assertFalse(os.access(self.FOO, os.W_OK))
self.assertTrue(System.is_hardlink(self.FOO))
self.assertEqual(open(self.FOO, "r").read(), "foo")
with open(self.FOO, "r") as fd:
self.assertEqual(fd.read(), "foo")
class TestCmdRunOverwrite(TestDvc):
@@ -603,12 +609,14 @@ class TestCmdRunCliMetrics(TestDvc):
def test_cached(self):
ret = main(["run", "-m", "metrics.txt", "echo test > metrics.txt"])
self.assertEqual(ret, 0)
self.assertEqual(open("metrics.txt", "r").read().rstrip(), "test")
with open("metrics.txt", "r") as fd:
self.assertEqual(fd.read().rstrip(), "test")
def test_not_cached(self):
ret = main(["run", "-M", "metrics.txt", "echo test > metrics.txt"])
self.assertEqual(ret, 0)
self.assertEqual(open("metrics.txt", "r").read().rstrip(), "test")
with open("metrics.txt", "r") as fd:
self.assertEqual(fd.read().rstrip(), "test")
class TestCmdRunWorkingDirectory(TestDvc):
+8 -11
View File
@@ -1,19 +1,16 @@
import os
import pytest
from dvc.system import System
from tests.basic_env import TestDir
class TestSystem(TestDir):
def test_getdirinfo(self):
if os.name != "nt":
return
# simulate someone holding an exclussive access
locked = "locked"
fd = os.open(locked, os.O_WRONLY | os.O_CREAT | os.O_EXCL)
@pytest.mark.skipif(os.name != "nt", reason="Windows specific")
def test_getdirinfo(tmp_path):
# simulate someone holding an exclussive access
locked = str(tmp_path / "locked")
fd = os.open(locked, os.O_WRONLY | os.O_CREAT | os.O_EXCL)
try:
# should not raise WinError
System.getdirinfo(locked)
finally:
os.close(fd)
+8 -8
View File
@@ -17,10 +17,10 @@ class TestWorkingTree(TestDir):
self.tree = WorkingTree()
def test_open(self):
self.assertEqual(self.tree.open(self.FOO).read(), self.FOO_CONTENTS)
self.assertEqual(
self.tree.open(self.UNICODE).read(), self.UNICODE_CONTENTS
)
with self.tree.open(self.FOO) as fd:
self.assertEqual(fd.read(), self.FOO_CONTENTS)
with self.tree.open(self.UNICODE) as fd:
self.assertEqual(fd.read(), self.UNICODE_CONTENTS)
def test_exists(self):
self.assertTrue(self.tree.exists(self.FOO))
@@ -47,10 +47,10 @@ class TestGitTree(TestGit):
def test_open(self):
self.scm.add([self.FOO, self.UNICODE, self.DATA_DIR])
self.scm.commit("add")
self.assertEqual(self.tree.open(self.FOO).read(), self.FOO_CONTENTS)
self.assertEqual(
self.tree.open(self.UNICODE).read(), self.UNICODE_CONTENTS
)
with self.tree.open(self.FOO) as fd:
self.assertEqual(fd.read(), self.FOO_CONTENTS)
with self.tree.open(self.UNICODE) as fd:
self.assertEqual(fd.read(), self.UNICODE_CONTENTS)
with self.assertRaises(IOError):
self.tree.open("not-existing-file")
with self.assertRaises(IOError):