github.com/attic-labs/noms@v0.0.0-20210827224422-e5fa29d95e8b/tools/noms/copy_test.py (about) 1 #!/usr/bin/python 2 3 # Copyright 2016 Attic Labs, Inc. All rights reserved. 4 # Licensed under the Apache License, version 2.0: 5 # http://www.apache.org/licenses/LICENSE-2.0 6 7 import os, os.path, shutil, tempfile, unittest 8 import copy 9 10 class TestCopy(unittest.TestCase): 11 def setUp(self): 12 self.tempdir = os.path.realpath(tempfile.mkdtemp()) 13 14 15 def tearDown(self): 16 shutil.rmtree(self.tempdir, ignore_errors=True) 17 18 19 def test_CopyPeers(self): 20 nested = tempfile.mkdtemp(dir=self.tempdir) 21 otherNested = tempfile.mkdtemp(dir=self.tempdir) 22 23 def mkfile(): 24 with tempfile.NamedTemporaryFile(dir=nested, delete=False) as f: 25 return f.name 26 27 me = mkfile() 28 peerFile = os.path.basename(mkfile()) 29 peerDir = os.path.basename(tempfile.mkdtemp(dir=nested)) 30 peerLink = 'link' 31 peerLinkAbs = os.path.join(nested, 'link') 32 os.symlink(peerFile, peerLinkAbs) 33 34 copy.Peers(me, otherNested) 35 self.assertTrue(os.path.islink(os.path.join(otherNested, peerLink))) 36 self.assertTrue(os.path.isfile(os.path.join(otherNested, peerFile))) 37 self.assertTrue(os.path.isdir(os.path.join(otherNested, peerDir))) 38 self.assertFalse(os.path.lexists(os.path.join(otherNested, os.path.basename(me)))) 39 40 41 if __name__ == '__main__': 42 unittest.main()