Files
dvc/tests/test_utils.py
T
2018-12-06 06:40:55 +02:00

55 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']))