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()