1 #!/usr/bin/env python 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 3 # Use of this source code is governed by a BSD-style license that can be 4 # found in the LICENSE file. 5 6 """Tests for pyauto_utils.""" 7 8 import glob 9 import os 10 import shutil 11 import tempfile 12 import unittest 13 14 import pyauto_utils 15 16 17 class ExistingPathReplacerTest(unittest.TestCase): 18 """Tests for ExistingPathReplacer.""" 19 20 def setUp(self): 21 self._workdir = tempfile.mkdtemp() 22 self.assertEqual(0, len(os.listdir(self._workdir))) 23 24 def tearDown(self): 25 shutil.rmtree(self._workdir, ignore_errors=True) 26 27 def _CreateFile(self, path): 28 fp = open(path, 'w') 29 fp.write('magic') 30 fp.close() 31 32 def _IsOrigFile(self, path): 33 if not os.path.isfile(path): 34 return False 35 return open(path).read() == 'magic' 36 37 def testNonExistingFile(self): 38 """Test when the requested file does not exist.""" 39 myfile = os.path.join(self._workdir, 'myfile.txt') 40 self.assertFalse(os.path.isfile(myfile)) 41 r = pyauto_utils.ExistingPathReplacer(myfile, path_type='file') 42 self.assertTrue(os.path.isfile(myfile)) 43 del r 44 self.assertEqual(0, len(os.listdir(self._workdir))) 45 46 def testExistingFile(self): 47 """Test when the requested file exists.""" 48 myfile = os.path.join(self._workdir, 'myfile.txt') 49 self._CreateFile(myfile) 50 self.assertTrue(self._IsOrigFile(myfile)) 51 r = pyauto_utils.ExistingPathReplacer(myfile, path_type='file') 52 self.assertFalse(self._IsOrigFile(myfile)) 53 self.assertEqual(2, len(os.listdir(self._workdir))) 54 del r 55 self.assertEqual(1, len(os.listdir(self._workdir))) 56 self.assertTrue(self._IsOrigFile(myfile)) 57 58 def testNonExistingDir(self): 59 """Test when the requested dir does not exist.""" 60 mydir = os.path.join(self._workdir, 'mydir') 61 self.assertFalse(os.path.isdir(mydir)) 62 r = pyauto_utils.ExistingPathReplacer(mydir, path_type='dir') 63 self.assertTrue(os.path.isdir(mydir)) 64 self.assertEqual(0, len(os.listdir(mydir))) 65 del r 66 self.assertFalse(os.path.isdir(mydir)) 67 68 def testExistingDir(self): 69 """Test when the requested dir exists.""" 70 # Create a dir with one file 71 mydir = os.path.join(self._workdir, 'mydir') 72 os.makedirs(mydir) 73 self.assertEqual(1, len(os.listdir(self._workdir))) 74 myfile = os.path.join(mydir, 'myfile.txt') 75 open(myfile, 'w').close() 76 self.assertTrue(os.path.isfile(myfile)) 77 r = pyauto_utils.ExistingPathReplacer(mydir) 78 self.assertEqual(2, len(os.listdir(self._workdir))) 79 self.assertFalse(os.path.isfile(myfile)) 80 del r 81 self.assertEqual(1, len(os.listdir(self._workdir))) 82 self.assertTrue(os.path.isfile(myfile)) 83 84 85 if __name__ == '__main__': 86 unittest.main() 87