Files
dvc/tests/func/test_unprotect.py
T

35 lines
1.1 KiB
Python

import os
from dvc.main import main
from tests.basic_env import TestDvc
class TestUnprotect(TestDvc):
def test(self):
ret = main(["config", "cache.type", "hardlink"])
self.assertEqual(ret, 0)
ret = main(["add", self.FOO])
self.assertEqual(ret, 0)
cache = os.path.join(
".dvc", "cache", "ac", "bd18db4cc2f85cedef654fccc4a4d8"
)
self.assertFalse(os.access(self.FOO, os.W_OK))
self.assertFalse(os.access(cache, os.W_OK))
ret = main(["unprotect", self.FOO])
self.assertEqual(ret, 0)
self.assertTrue(os.access(self.FOO, os.W_OK))
# NOTE: cache is now unprotected, bceause we try to set write perms
# on files that we try to delete, as some filesystems require that
# (e.g. NTFS). But it should be restored after the next cache check,
# hence why we call `dvc status` here.
self.assertTrue(os.access(cache, os.W_OK))
ret = main(["status"])
self.assertEqual(ret, 0)
self.assertFalse(os.access(cache, os.W_OK))