Home | History | Annotate | Download | only in tests
      1 #!/usr/bin/python
      2 
      3 # Copyright 2014 Google Inc.
      4 #
      5 # Use of this source code is governed by a BSD-style license that can be
      6 # found in the LICENSE file.
      7 
      8 """
      9 Test gyp_to_android.py
     10 """
     11 
     12 import os
     13 import shutil
     14 import sys
     15 import tempfile
     16 import test_variables
     17 import unittest
     18 
     19 sys.path.append(test_variables.ANDROID_DIR)
     20 
     21 import gyp_gen.android_framework_gyp
     22 
     23 GYPD_SUFFIX = ".gypd"
     24 GYP_SUFFIX = ".gyp"
     25 GYPI_SUFFIX = ".gypi"
     26 OTHER_SUFFIX = ".txt"
     27 
     28 class CleanGypdTest(unittest.TestCase):
     29 
     30   def setUp(self):
     31     self.__tmp_dir = tempfile.mkdtemp()
     32     self.__num_files = 10
     33     # Fill the dir with four types of files. .gypd files should be deleted by
     34     # clean_gypd_files(), while the rest should be left alone.
     35     for i in range(self.__num_files):
     36       self.create_file('%s%s' % (str(i), GYPD_SUFFIX))
     37       self.create_file('%s%s' % (str(i), GYPI_SUFFIX))
     38       self.create_file('%s%s' % (str(i), GYP_SUFFIX))
     39       self.create_file('%s%s' % (str(i), OTHER_SUFFIX))
     40 
     41   def create_file(self, basename):
     42     """Create a file named 'basename' in self.__tmp_dir.
     43     """
     44     f = tempfile.mkstemp(dir=self.__tmp_dir)
     45     os.rename(f[1], os.path.join(self.__tmp_dir, basename))
     46     self.assert_file_exists(basename)
     47 
     48   def assert_file_exists(self, basename):
     49     """Assert that 'basename' exists in self.__tmp_dir.
     50     """
     51     full_name = os.path.join(self.__tmp_dir, basename)
     52     self.assertTrue(os.path.exists(full_name))
     53 
     54   def assert_file_does_not_exist(self, basename):
     55     """Assert that 'basename' does not exist in self.__tmp_dir.
     56     """
     57     full_name = os.path.join(self.__tmp_dir, basename)
     58     self.assertFalse(os.path.exists(full_name))
     59 
     60   def test_clean(self):
     61     """Test that clean_gypd_files() deletes .gypd files, and leaves others.
     62     """
     63     gyp_gen.android_framework_gyp.clean_gypd_files(self.__tmp_dir)
     64     for i in range(self.__num_files):
     65       self.assert_file_exists('%s%s' % (str(i), GYPI_SUFFIX))
     66       self.assert_file_exists('%s%s' % (str(i), GYP_SUFFIX))
     67       self.assert_file_exists('%s%s' % (str(i), OTHER_SUFFIX))
     68       # Only the GYPD files should have been deleted.
     69       self.assert_file_does_not_exist('%s%s' % (str(i), GYPD_SUFFIX))
     70 
     71   def tearDown(self):
     72     shutil.rmtree(self.__tmp_dir)
     73 
     74 
     75 def main():
     76   loader = unittest.TestLoader()
     77   suite = loader.loadTestsFromTestCase(CleanGypdTest)
     78   unittest.TextTestRunner(verbosity=2).run(suite)
     79 
     80 if __name__ == "__main__":
     81   main()
     82