Files
dvc/tests/test_utils.py
T
Ruslan Kuprieiev 4896f08ddf dvc: comply with both flake8 and black
flake8 provides some additional features like unused vars check, etc, so
it makes total sense to use it as well.

Signed-off-by: Ruslan Kuprieiev <[email protected]>
2019-02-04 00:10:36 +02:00

61 lines
1.6 KiB
Python

import os
import shutil
import filecmp
from dvc import utils
from tests.basic_env import TestDvc
class TestUtils(TestDvc):
def test_copyfile(self):
src = "file1"
dest = "file2"
dest_dir = "testdir"
with open(src, "w+") as f:
f.write("file1contents")
os.mkdir(dest_dir)
utils.copyfile(src, dest)
self.assertTrue(filecmp.cmp(src, dest, shallow=False))
utils.copyfile(src, dest_dir)
self.assertTrue(
filecmp.cmp(src, "{}/{}".format(dest_dir, src), shallow=False)
)
shutil.rmtree(dest_dir)
os.remove(src)
os.remove(dest)
def test_file_md5_crlf(self):
with open("cr", "wb+") as fd:
fd.write(b"a\nb\nc")
with open("crlf", "wb+") as fd:
fd.write(b"a\r\nb\r\nc")
self.assertEqual(utils.file_md5("cr")[0], utils.file_md5("crlf")[0])
def test_dict_md5(self):
d = {
"cmd": "python code.py foo file1",
"locked": "true",
"outs": [
{
"path": "file1",
"metric": {"type": "raw"},
"cache": False,
"md5": "acbd18db4cc2f85cedef654fccc4a4d8",
}
],
"deps": [
{"path": "foo", "md5": "acbd18db4cc2f85cedef654fccc4a4d8"},
{"path": "code.py", "md5": "d05447644b89960913c7eee5fd776adb"},
],
}
md5 = "8b263fa05ede6c3145c164829be694b4"
self.assertEqual(md5, utils.dict_md5(d, exclude=["metric", "locked"]))